如何在带参数的Linux C代码中执行外部程序? [英] How do I execute an external program within C code in Linux with arguments?
本文介绍了如何在带参数的Linux C代码中执行外部程序?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我想在C代码中执行另一个程序。 例如,我想执行一个命令
./foo 1 2 3
foo
是同一文件夹中的程序,1 2 3
是参数。
foo
程序创建将在我的代码中使用的文件。
如何执行此操作?
推荐答案
简单使用system()
:
#include <stdlib.h>
...
int status = system("./foo 1 2 3");
system()
将等待foo完成执行,然后返回一个可用于检查的状态变量,例如exitcode(命令的exitcode乘以256,因此将system()的返回值除以该值即可得到实际的exitcode:int exitcode = status / 256
)。
The manpage for wait()
(在您的Linux系统上的第2节,man 2 wait
)列出了可用于检查状态的各种宏,最有趣的是WIFEXITED
和WEXITSTATUS
。
或者,如果您需要读取foo的标准输出,可以使用popen(3)
,它返回一个文件指针(FILE *
);那么与命令的标准输入/输出交互就等同于读取或写入文件。
这篇关于如何在带参数的Linux C代码中执行外部程序?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文