用C ++创建Linux进程

时间:2015-12-24 22:39:03

标签: c++ linux process fork

所以,我需要用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。

1 个答案:

答案 0 :(得分:2)

因为在C ++中,没有办法标记数组的大小,而不是终结符,你需要用NULL终止数组。

char* cmd[3];
cmd[0]="./Sort";
cmd[1]="1";
cmd[2]=NULL;