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