c - 我需要从用户那里获取参数,而不是在命令中硬编码以使用 fork() 同时执行
问题描述
我在下面创建了一个简单的代码块,它从父级分叉,并同时执行“ls”和“date”:
int main(int argc, char ** argv){
cpid1, cpid2;
switch(cpid1 = fork()){
case -1:
perror("fork failed");
return EXIT_FAILURE;
case 0:
printf("First child, pid=%d, executing ls...\n", getpid());
execl("/bin/ls", "-l", "-a", NULL);
return EXIT_FAILURE;
}
switch(cpid2 = fork()){
case -1:
perror("fork failed");
return EXIT_FAILURE;
case 0:
printf("Second child, pid=%d, executing ls...\n", getpid());
execl("/bin/date", "-l", "-a", NULL);
return EXIT_FAILURE;
}
while(wait(NULL) != -1);
return EXIT_SUCCESS;
}
但是,我不想每次都运行“ls”和“date”,如 2 个 execl 语句中所示。我希望用户能够输入最多 6 个用逗号分隔的命令。我想我应该做类似 execl("argv[1]", NULL) 的事情,但我束手无策
解决方案
推荐阅读
- android - 无法获取导航抽屉项目 ID 以打开活动
- vue.js - 如何使用 v-model 为输入 Vue 组件设置初始值
- ubuntu - pm2 密钥在 gitlab-ci 上的权限错误
- c++ - 为什么 const_cast 删除指针的 constness 而不是指向 const 的指针?
- css - 进度条、元素重叠和 z-index:我怎样才能让它工作?
- javascript - 如何使用jquery检查一行中的所有文本框是否已填充
- c# - C#:使用计划的 Azure Functions 中不存在密钥集
- javascript - PWA 是否与浏览器共享 web-push 订阅?
- ionic-framework - Ionic serve -l 显示较旧的错误?
- java - 如何清理大型项目中的 JSP 依赖项