Bru*_*uno 1 c bash operating-system
所以我想定义system()函数!这是我的功能:
#include <stdio.h>
#include <string.h>
#include <unistd.h>
#include <stdlib.h>
void mySystem (char *command)
{
execlp (command, command, (char*) 0);
}
int main (int argc, char* argv[])
{
for (int i = 1; i < argc; i++)
{
char command[50];
strcpy(command, argv[i]);
mySystem(command);
}
return 0;
}
Run Code Online (Sandbox Code Playgroud)
然后我尝试它就像那样:
gcc exe6.c;
./a.out ls ls
Run Code Online (Sandbox Code Playgroud)
在这种情况下,它只做一个ls.
./a.out "ls -l"
Run Code Online (Sandbox Code Playgroud)
在这种情况下不做任何事情.我究竟做错了什么?
该手册页实际上告诉你如何做到这一点:
system()库函数使用fork(2)创建一个子进程,该进程使用execl(3)执行命令中指定的shell命令,如下所示:
Run Code Online (Sandbox Code Playgroud)execl("/bin/sh", "sh", "-c", command, (char *) 0);命令完成后,system()返回.
| 归档时间: |
|
| 查看次数: |
72 次 |
| 最近记录: |