函数 —— fork()将运行着的程序分成2个(几乎)完全一样的进程
生活随笔
收集整理的這篇文章主要介紹了
函数 —— fork()将运行着的程序分成2个(几乎)完全一样的进程
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
UNIX及類UNIX(UNIX-like)系統中的分叉函數。返回值: 若成功調用一次則返回兩個值,子進程返回0,父進程返回子進程標記;否則,出錯返回-1。
調用fork之后,數據、堆、棧有兩份,代碼仍然為一份但是這個代碼段成為兩個進程的共享代碼段都從fork函數中返回,箭頭表示各自的執行處。當父子進程有一個想要修改數據或者堆棧時,兩個進程真正分裂。
#include<sys/types.h>//對于此程序而言此頭文件types.h用不到 #include<unistd.h> #include<stdio.h> #include<stdlib.h>int main(int argc,char *argv[])/*整數類型主函數*/ { pid_t pid=fork();/*傳遞參數*/ if(pid<0)/*如果(進程標記<0)*/ { fprintf(stderr,"錯誤!"); } else if(pid==0)/*否則如果(進程標記==0)*/ { printf("百度百科:這是子進程!"); exit(0); } else/*否則*/{ printf("百度百科:這是父進程!子進程的進程標記為=%d",pid); } //可能需要時候wait或waitpid函數等待子進程的結束并獲取結束狀態 exit(0); }注意!樣例代碼僅供參考,樣例代碼存在著父進程在子進程結束前結束的可能性。必要的時候可以使用wait或 waitpid函數讓父進程等待子進程的結束并獲取子進程的返回狀態。
參考連接:https://baike.baidu.com/item/fork/7143171?fr=aladdin
總結
以上是生活随笔為你收集整理的函数 —— fork()将运行着的程序分成2个(几乎)完全一样的进程的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: sqlite库——C实现,给sqlite
- 下一篇: C语言——实现用链表存储学生信息,当输入