簡體   English   中英

我如何在C中執行()我的程序?

[英]How can I exec() my program in c?

我正在嘗試使用execl()函數在c中運行程序。 當前,應該運行該程序的代碼片段看起來像這樣,而info_proc在info_proc.c文件中,其主文件包含一個printf。

`switch(fork()) {
   case -1:
      perror("fork");
      exit(EXIT_FAILURE);
   case 0:
      getcwd(dir, 256);
      strcat(dir, "/info_proc");
      printf("dir %s", dir);
      execl(dir, "info_proc", req->data, NULL);
      perror("execl");
      exit(EXIT_FAILURE);
    default:
      wait(NULL);
      break;
}

`

我的程序向執行返回“ execl:錯誤的地址” ...我真的看不到錯誤可能從哪里來

所以,我的問題是req-> data是pid_t。 這是我解決問題的方法(感謝cdark,usr2564301和Fred Larson!)

char *dir = malloc(sizeof(char) * 256);
    switch(fork()) {
        case -1:
            perror("fork");
            exit(EXIT_FAILURE);
        case 0:
            getcwd(dir, 256);
            strcat(dir, "/info_proc");
            printf("dir %s", dir);
            char *pid = malloc(10 * sizeof(char));
            sprintf(pid, "%d", req->data);
            execl(dir, "info_proc", pid, NULL);
            perror("execl");
            exit(EXIT_FAILURE);
        default:
            wait(NULL);
            break;
    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM