c++ - 在执行 system() 命令时执行其他任务

标签 c++ linux system

我有这个 c++ 程序,它对指定的 ip 地址执行简单的 ping。我不喜欢网络,所以我只是使用 c++ 中的 system() 命令从 shell 执行 ping 并将结果存储在文件中,这很容易。

问题是我希望在执行 system() 命令时在屏幕上打印一些点。我试过:

while(system(cmd))
{ 
//execute the task here
}

但没有成功。我认为我应该创建线程或其他东西。

你能帮帮我吗?为了按照我的意愿完成这件事,我到底应该做什么?

最佳答案

system 的问题在于它会暂停执行直到完成。在 unix 系统上,您需要使用一系列 fork、execv、dup2 和 pipe。这将使您能够做一些更有用的事情。参见 http://docs.linux.cz/programming/c/unix_examples/execill.html举个例子。

关于c++ - 在执行 system() 命令时执行其他任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2258885/

相关文章:

c++ - 为什么只打印一个阿姆斯特朗号码?

c++ - asio::io_service::post 是否使关系发生在发生之前?

c - 无需查找即可写入的音频文件格式

linux - 无法在 rackspace 云服务器上的 ubuntu 上运行 jbossas7

linux - 如何通过 CLI 快速重命名 macOS 或 Linux 上的文件?

c++ - 无法解释的内存泄漏 C++

android - Android应用程序可以 self 升级吗?

Java: token "}"上存在语法错误?

c++ - 在 C++ 中通过 system() 使用 7-zip

c++ - 如何通过它的第 0 个位置引用解析这个 vector