所以,我需要用fork在linux中创建一个进程。 子进程需要运行Sort程序,并将“1”传递给它。 这是我正在尝试的代码:
int main(){
cout<<"Master #process: "<<getpid()<<"#parent process:"<<getppid()<<endl;
char* cmd[2];
cmd[0]="./Sort";
cmd[1]="1";
pid_t child_id=fork();
if(child_id==0){
execv(cmd[0],cmd);
}
cout<<child_id<<endl;
然而,当我尝试在linux控制台中运行它时,它只显示第一个字符串而不运行Sort。
答案 0 :(得分:2)
因为在C ++中,没有办法标记数组的大小,而不是终结符,你需要用NULL终止数组。
char* cmd[3];
cmd[0]="./Sort";
cmd[1]="1";
cmd[2]=NULL;