在c

时间:2016-10-27 17:56:23

标签: c linux fork exec

int create_process(char input[]){
 char string[100];
 int j =  (sizeof(input) / sizeof(input[0]));
 char temp[j+1];
 int i = 0;
 for(i = 0; i <= j; j++){
     temp[i] = input[i];
 }
 temp[j+1] = '\0';
 strcpy(string, temp);

pid_t pid=fork();
if (pid==0) { 
    char *params[4]  = {"/bin/ls", "-l",0};
    execv("/bin/ls", params);
    exit(127); 
}
else { 
    printf("Continuing the parent process");
}
return 0; }

任何人都可以告诉我我的代码有什么问题它给我分段故障核心转储程序退出代码139

create_process获取char数组作为输入。最终我想基于input [] char数组动态执行程序。

任何帮助都将受到高度赞赏。感谢。

注意:我使用的是Ubuntu 15.04。

例如,如果我想运行gedit输入将是

input[0] = 'g';
input[1] = 'e';
input[2] = 'd';
input[3] = 'i';
input[4] = 't';

0 个答案:

没有答案