繁体   English   中英

通过 cmd 和 c 将 arguments 传递给正在运行的文件

[英]Passing arguments to a running file via cmd with c

我正在 C 中制作一个程序来控制一个 spigot server.jar 与 cmd 一起使用。 我用一个系统('call to.bat file')调用一个.bat文件来启动这个程序,程序成功启动。 要停止它,我必须将“停止”传递给服务器,我想用 c 或 .bat 程序来完成它(这对我来说是一样的)。 我的问题是我该怎么做? 我需要将“停止”参数传递给它,因为当它停止它时,它会保护所有文件,而我无法使用 taskill 命令执行此操作(我已经尝试过,但它不保护文件)。 在使用 stop 参数调用 .bat 文件后,我尝试使用 system() 函数,但在使用 stop 命令关闭 spigot 服务器之前它不起作用。 我在 Windows 10 工作。

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

它涉及在 Java 中为您的 Spigot 服务器编写一个插件,该插件托管它自己的服务器,然后 C 程序可以发送一个数据包来告诉 Spigot 服务器关闭,因为 Spigot 服务器需要在它之前进行自己的清理可以正常关机。

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

要在 C 中执行此操作,您需要一个网络 API(在 POSIX 系统上,默认情况下它在那里,但我不知道 Windows),并且您将编写一个客户端,该客户端将与用 ZD52387880E1EA2228 编写的服务器通信。 Java 拥有自己的标准网络 API,因此您无需担心。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM