我正在尝试为作业输出"ps"的结果,但我遇到了一些我想弄明白的怪癖.
这可以正常工作,并在shell中显示ps的输出:
//Create "ps -u laser"
int pid_ps = fork();
char *argv[1] = {"-u laser"};
if (pid_ps == 0) {
execv("/bin/ps", argv);
}
Run Code Online (Sandbox Code Playgroud)
现在,这是我的幻灯片中给出的格式,但只是给出了"用法:"和"格式是一个或多个:"ps运行时的通知:
//Create "ps -u laser"
int pid_ps = fork();
char *argv[2] = {"-u", "laser"};
if (pid_ps == 0) {
execv("/bin/ps", argv);
}
Run Code Online (Sandbox Code Playgroud)
我也尝试在数组的末尾放置0和NULL,这是在其他答案中提出的,但没有运气.
我可能忽略了一些小事,但我对c不太熟悉.任何见解都表示赞赏.
Eri*_*rik 11
使用char *argv[] = {"/bin/ps", "-u", "laser", 0};- 第一个参数是可执行文件名.
编辑:样本.
int pid_ps = fork();
if (pid_ps == 0) {
char *argv[] = {"/bin/ps", "-u", "laser", 0};
execv("/bin/ps", argv);
}
Run Code Online (Sandbox Code Playgroud)
上面的代码片段经过测试并正常运行.
| 归档时间: |
|
| 查看次数: |
8720 次 |
| 最近记录: |