运行一个进程来处理特定的函数

时间:2018-03-21 14:43:25

标签: c process operating-system

我在C中获得了包含main函数和另一个函数的代码,并且我创建了一个fork来创建另一个进程。我想让新进程只执行该功能,一旦完成执行就会死掉。

我搜索了解决方案,但我没找到。

1 个答案:

答案 0 :(得分:5)

你可以这样做:

#include <stdio.h>
#include <stdlib.h>

void fun()
{
     printf ("In fun\n");
     // Do your stuff
     // ....
}

int main(void)
{
   pid_t pid = fork();

   if (pid == -1) {
      perror("fork failed");
      exit(EXIT_FAILURE);
   }
   else if (pid == 0) {
      // Child process
      fun();   // Calling function in child process
      exit(EXIT_SUCCESS);
   }
   else {
      // Parent process
      int status;
      // Wait for child
      waitpid(pid, &status, 0);
   }
   return EXIT_SUCCESS;
}