如何在带参数的Linux C代码中执行外部程序? [英] How do I execute an external program within C code in Linux with arguments?

查看:4
本文介绍了如何在带参数的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)列出了可用于检查状态的各种宏,最有趣的是WIFEXITEDWEXITSTATUS

或者,如果您需要读取foo的标准输出,可以使用popen(3),它返回一个文件指针(FILE *);那么与命令的标准输入/输出交互就等同于读取或写入文件。

这篇关于如何在带参数的Linux C代码中执行外部程序?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆