C 中的系统调用

发布于 2024-11-08 06:43:16 字数 313 浏览 0 评论 0原文

我在 C 中有一个函数,它调用另一个软件来执行并生成一个文件,然后它操纵数据,例如,

void main()
{
function();
//manipulate data in output.txt
}    
void execute()
{
system("./test input.txt output.txt");
}

由于某种原因,output.txt 文件没有由 full 生成...系统调用如何工作?系统调用结束前会执行return to main吗?如果是的话我该如何解决这个问题?我正在使用 gcc 在 ubuntu 上工作

I have a function in C that calls another software to execute and generate a file then its manipulates the data e.g.

void main()
{
function();
//manipulate data in output.txt
}    
void execute()
{
system("./test input.txt output.txt");
}

for some reason the output.txt file is not being generated by full...how does the system call work? will execute return to main before system call ends? if yes how can I solve this? Im working on ubuntu using gcc

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

成熟稳重的好男人 2024-11-15 06:43:16
  1. 始终检查 system() 的结果。确保它执行成功(即返回 0 或“测试”的任何成功结果)
  2. 当系统执行时,它通过 /bin/sh 运行(无论如何在 unix/linux 上)。但是,由于您使用“./test”指定它,请确保您在您认为的工作目录中进行操作。复杂的系统(以及设计不佳的系统)会像内衣一样改变目录。
  1. Check the result of system() ALWAYS. Ensure that it executed successfully(ie. returns 0 or whatever is a successful result for 'test')
  2. When system executes it runs through /bin/sh (on unix/linux anyway). However since you're specifying it with './test' make sure that you're operating in the working directory that you THINK you are. Complex systems(and poorly designed ones) change directories like underwear.
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文