Linux GCC 程序建立

2021-08-03 06:47:14 字數 1335 閱讀 1827

簡要說明fork建立父子程序、orphan孤兒程序、defunct殭屍程序;wait、waitpid使用;gdaemon建立守護程序;親緣關係的程序使用無名管道;

system、fork、execl、open均可以建立程序,這裡主要介紹fork方式。

fork建立父子程序檢視父程序、子程序的堆疊區情況。

寫時複製:copy on write 子程序對於變數的修改不影響父程序的堆疊區。因為這些共享的區域被核心設定為唯讀。

//注釋:malloc申請空間處於堆區;變數處於棧區

//區域性變數在棧區

#include"func.h"

int main()else

}//malloc申請空間在堆區

#include"func.h"

int main()else

}

return exit _exit(不重新整理緩衝區) abort(中斷方式)kill 訊號

orphan孤兒程序: 子程序尚未結束而父程序提前結束。使得子程序被init託管

defunct殭屍程序:子程序已經結束,父程序尚未結束。那麼子程序的pcb無法被清理,子程序狀態為z

//孤兒子程序

#include "func.h"

int main()else

}//殭屍子程序

#include"func.h"

int main()else

}

父程序等待某個pid的子程序的退出;wait(null)是掛起父程序等待。

#include "func.h"

int main()

else

}if(wifexited(status))

else

return

0; }

}

#include "func.h"

// 父程序寫 子程序讀

int main()

; read(fds[0],buf,sizeof(buf));

puts(buf);

exit(0);

}else

}//父程序讀 子程序寫

#include "func.h"

int main()

else;

read(fds[0],buf,sizeof(buf));

//printf("child=%d",pid);

puts(buf);

return

0; }

}

Linux gcc程式設計用法

初學時最好從命令列入手,這樣可以熟悉從編寫程式 編譯 除錯和執行的整個過程。編寫程式可以用vi或其它編輯器編寫。編譯則使用gcc命令。要往下學習首先就得熟悉gcc命令的用法。gcc命令提供了非常多的命令選項,但並不是所有都要熟悉,初學時掌握幾個常用的就可以了,到後面再慢慢學習其它選項,免得因選項太多...

多個linux gcc版本

checking for a bsd compatible install.usr bin install c checking whether ln s works.yes checking for pwd.bin pwd 所以需要把我目前的gcc版本按到以前的狀態3.4了。首先,你需要去你的us...

linux gcc原子操作

gcc從4.1.2提供了 sync 系列的built in函式,用於提供加減和邏輯運算的原子操作。其宣告如下 type sync fetch and add type ptr,type value,type sync fetch and sub type ptr,type value,type sy...