问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

我想在linux下写一个c程序调用linux的可执行文件或者程序,怎么做

发布网友 发布时间:2022-04-25 13:51

我来回答

1个回答

热心网友 时间:2022-05-27 00:08

Linux C编程中,调用另一个可执行文件或调用命令用system函数最简单了,这个函数原理是在你编写的那个程序的内部启动另一个程序或命令,从而创建一个新进程,并等待这个进程执行完毕退出。如果正常执行,system函数将返回被执行程序或命令的退出码;如果无法运行这个程序或命令,将返回错误代码127;如果是其他错误,返回-1。这个函数的原型是:
#include <stdlib.h>
int system(const char *string);
参数string是将要执行的程序文件名或路径,如果是启动一个命令就是一个命令字符串。
还有一种执行外部程序的方法是exec系列函数,一般是在fork的子进程里面调用exec系列函数,那主进程里直接调用exec系列不行吗,为什么要fork再在子进程里调用呢?因为exec系列的函数(包括execl函数)是将当前进程替换成新进程,这里的当前进程就是你编写的程序,也就是说新进程启动后调用exec函数的进程就不存在了,所以exec系列函数调用之后的代码就不会再执行了。如果你不放在fork子进程里面,那你编写的程序的主进程在执行execl函数后就完全不存在了,所以exec系列函数的使用都是先fork然后在子进程里面调用。因为exec系列函数都要使用fork调用,所以我一般是用system函数。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
光猫的注册灯一直闪没有网是怎么回事 ...PSP3000播放不起MP4格式的视频 我是6.60系统,PPA也放不起。还有就... AVC无法播放 PSP的电影,我放在相应的文件夹里,播放器也有.怎么还不行? psp ppa 无法播放 S1铁路啥意思 农历八月十五出生男孩名字 T-46轻型坦克参数资料(取自坦克世界) 美丽加芬有卸妆液吗 为什么股票涨跌很快 微信定位怎么直接显示朋友圈 茶叶能放冰箱里储存吗 茶叶可以放入冰箱储存吗?真相是怎样的? 有没有什么改变电脑桌面的软件?要免费的,要可以改变XP桌面的。 推荐一个好的电脑桌面主题 电脑动态主题下载 绿茶放冰箱可以放多久? 茶叶最多能放冰箱里多久? 有什么好看的电脑主题桌面? 苏泊尔电饭锅怎么用?产品怎么样 什么叫电子商务?(从狭义、广义两个方面回答) 狭义的电子商务定义是 广义的电子商务EB指的是什么? 战神电脑怎么样 请从狭义和广义两个角度来简述什么是电子商务 电子商务为什么分为狭义和广义 苏泊尔电饭煲哪款好?有用过的朋友推荐一下吗? 广义的电子商务法调整的主要内容是什么? 广义电子商务和狭义电子商务的联系和区别? 苏泊尔电饭煲好不好? 打印机驱动显示拒绝访问,无法连接。怎么搞的! 汽车上收音机上有个USB接口,怎么才能用U盘放歌 添加打印机提示windows8无法连接打印机拒绝访问是怎么回事 网络打印机拒绝访问,无法连接 无法连接到打印机 拒绝访问 学佛最基本需要读哪些佛书? 佛书有哪些? 佛教三藏十二部经典指的是哪些书 佛教三藏十二部经典指的是哪些书? 有什么好的佛书可以看 佛家著作有哪些,所有的佛书阅读顺序是怎样的? 佛书分几部?每部都有那些经书? 要全的 有什么佛书(不是佛经) 佛书是拿来念的还是要学懂佛书中的义理修正自己呢? 最值得一看和学习的佛书都有什么? 小学生学佛读什么佛书最好? 佛书的佛书经典 第一次接触佛选什么佛书好 学佛最基本需要读哪些佛书 佛书可以放在床头上吗