簡體   English   中英

如何從另一個C程序中調用一個C程序

[英]How do you call a C program from within another C program

我有兩個C程序,Project1A.c和Project1B.c。 我正在嘗試使用execl()從Project1B內部執行Project1A,但是到目前為止,它無法正常工作。

Project1B.c

#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <unistd.h>

int main ()
{
  pid_t pid;

  switch((pid = fork()))
  {
    case -1:
      printf("I'm sorry, fork failed\n");
      break;
    case 0:
      execl("Project1A.c", "./prog", NULL);
      printf("EXECL Unsucessfull");
      break;
    default:
      printf("This is some parent code\n");
      break;
  }
  printf("End of Program\n");

  return 0;
}

execl執行一個二進制文件,這意味着您無法將其傳遞給Project1A.c並期望它能正常工作。 您需要對其進行編譯並執行編譯程序。

該函數的后續參數是命令行參數,以NULL終止。 這意味着您的execl調用對應於外殼程序上的./Project1A.c ./prog,這顯然不起作用。

相反,您的execl調用應為: execl("prog1A", NULL);

另一方面,您可以運行C代碼,方法是先使用系統函數運行compile命令,然后如果編譯成功,則使用execl運行已編譯的程序。

暫無
暫無

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

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