欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  网络运营

Linux C语言执行命令行

程序员文章站 2022-04-07 17:51:22
char* arg[3];char *envp[] = {0,NULL};arg[0]="mkdir";arg[1]="./user/Jack";arg[2]=NULL;if(fork()==0){ execve("/usr/bin/mkdir",arg,envp);} else { return 0; }Ps: execve()在执行完成后会终止当前进程所以我们得搞个子进程去执行,才不会影响主进程第一个参数:文件名—就是你要用的命令对应的文件例:ls,cd这...
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