当前位置: 移动技术网 > 网络运营>服务器>Linux > Linux C语言执行命令行

Linux C语言执行命令行

2020年07月15日  | 移动技术网网络运营  | 我要评论
char* arg[3];
char *envp[] = {0,NULL};
arg[0]="mkdir";
arg[1]="./user/hello";
arg[2]=NULL;
if(fork()==0){
    execve("/usr/bin/mkdir",arg,envp);
} 
else {
    return 0;
  }

Ps: execve()在执行完成后会终止当前进程

所以我们得搞个子进程去执行,才不会影响主进程

第一个参数:

文件名—就是你要用的命令对应的文件

例:ls,cd

这些常用的命令都是存在/usr/bin目录下

(当然也可以是其他可执行的文件,不过像gedit这样有GUI程序,C语言不支持,会报错)

第二个参数:

arg—命令和需要的参数,并且最后一个参数是NULL,作为结束标志

Ps:那我上面的 mkdir 举例

新建的文件夹默认是在当前目录

如果需要在子目录里新建,则在文件路径那花点心思就行了

像:

./user/hello

第三个参数:

envp—用于配置环境变量,一般情况下不用管它

本文地址:https://blog.csdn.net/a10201516595/article/details/107312350

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网