使用C通过cmd将参数传递给正在运行的文件

我正在用C编写一个程序,该程序控制与cmd一起使用的spigot服务器.jar。我以对.bat文件的系统调用(“ .bat文件调用”)启动该程序,程序成功启动。要停止它,我必须将“停止”传递给服务器,并且我想使用c或.bat程序(对我来说也是一样)。我的问题是我该怎么办?我需要传递'stop'参数给它,因为当它停止它时,所有文件都是安全的,而我不能用taskill命令来做到这一点(我已经尝试过了,但是它并不安全)。在尝试使用stop参数调用.bat文件后,我尝试使用system()功能,但是直到使用stop命令关闭水龙头服务器后,该功能才起作用。我在Windows 10中工作。

myyxd318 回答:使用C通过cmd将参数传递给正在运行的文件

很抱歉,对于一个简单的系统调用来说,这有点复杂。

这需要使用Java为您的Spigot服务器编写一个插件来托管其自己的服务器,然后C程序可以将其发送一个数据包以通知Spigot服务器关闭,因为Spigot服务器需要自己做清理,然后才能正常关闭。

我不能肯定地说,因为我对Bukkit API更为熟悉,但这可能涉及改装Spigot服务器。

要在C语言中执行此操作,您需要一个网络API(在POSIX系统上,默认情况下它在其中,但我对Windows不了解),并且您将编写一个客户端,该客户端可以与使用C语言编写的服务器进行通信Java。 Java具有自己的标准网络API,因此您无需担心。

如果您的C程序使启动和停止服务器更加容易,那么我会将其移至Java,这样您就不必做任何奇怪的跨语言工作。否则,我只是手动启动BAT文件。

本文链接:https://www.f2er.com/3129639.html

大家都在问