?? 11.htm
字號:
name=linuxc186></A></FONT></DIV></TD></TR> <TR> <TD vAlign=top width=80> <DIV align=right><FONT face=宋體 size=2><BR></FONT></DIV></TD> <TD><FONT face=宋體 size=2><BR>getpgrp(取得進程組識別碼) </FONT></TD></TR> <TR> <TD vAlign=top width=80> <DIV align=right><FONT face=宋體 size=2>相關函數 </FONT></DIV></TD> <TD><FONT face=宋體 size=2>setpgid,getpgid,getpgrp<BR></FONT></TD></TR> <TR> <TD vAlign=top width=80> <DIV align=right><FONT face=宋體 size=2>表頭文件 </FONT></DIV></TD> <TD><FONT face=宋體 size=2>#include<unistd.h><BR></FONT></TD></TR> <TR> <TD vAlign=top width=80> <DIV align=right><FONT face=宋體 size=2>定義函數 </FONT></DIV></TD> <TD><FONT face=宋體 size=2>pid_t getpgrp(void);<BR></FONT></TD></TR> <TR> <TD vAlign=top width=80> <DIV align=right><FONT face=宋體 size=2>函數說明 </FONT></DIV></TD> <TD><FONT face=宋體 size=2>getpgrp()用來取得目前進程所屬的組識別碼。此函數相當于調用getpgid(0);<BR></FONT></TD></TR> <TR> <TD vAlign=top width=80> <DIV align=right><FONT face=宋體 size=2>返回值 </FONT></DIV></TD> <TD><FONT face=宋體 size=2>返回目前進程所屬的組識別碼。<BR></FONT></TD></TR> <TR> <TD vAlign=top width=80> <DIV align=right><FONT face=宋體 size=2>范例 </FONT></DIV></TD> <TD><FONT face=宋體 size=2>#include<unistd.h><BR>main()<BR>{<BR>printf(“my gid =%d\n”,getpgrp());<BR>}<BR></FONT></TD></TR> <TR> <TD vAlign=top width=80> <DIV align=right><FONT face=宋體 size=2>執行 </FONT></DIV></TD> <TD><FONT face=宋體 size=2>my gid =29546<BR></FONT></TD></TR> <TR> <TD vAlign=top width=80> <DIV align=right><BR><FONT face=宋體 size=2><A name=linuxc187></A></FONT></DIV></TD></TR> <TR> <TD vAlign=top width=80> <DIV align=right><FONT face=宋體 size=2><BR></FONT></DIV></TD> <TD><FONT face=宋體 size=2><BR>getpid(取得進程識別碼) </FONT></TD></TR> <TR> <TD vAlign=top width=80> <DIV align=right><FONT face=宋體 size=2>相關函數 </FONT></DIV></TD> <TD><FONT face=宋體 size=2>fork,kill,getpid<BR></FONT></TD></TR> <TR> <TD vAlign=top width=80> <DIV align=right><FONT face=宋體 size=2>表頭文件 </FONT></DIV></TD> <TD><FONT face=宋體 size=2>#include<unistd.h><BR></FONT></TD></TR> <TR> <TD vAlign=top width=80> <DIV align=right><FONT face=宋體 size=2>定義函數 </FONT></DIV></TD> <TD><FONT face=宋體 size=2>pid_t getpid(void);<BR></FONT></TD></TR> <TR> <TD vAlign=top width=80> <DIV align=right><FONT face=宋體 size=2>函數說明 </FONT></DIV></TD> <TD><FONT face=宋體 size=2>getpid()用來取得目前進程的進程識別碼,許多程序利用取到的此值來建立臨時文件,以避免臨時文件相同帶來的問題。<BR></FONT></TD></TR> <TR> <TD vAlign=top width=80> <DIV align=right><FONT face=宋體 size=2>返回值 </FONT></DIV></TD> <TD><FONT face=宋體 size=2>目前進程的進程識別碼<BR></FONT></TD></TR> <TR> <TD vAlign=top width=80> <DIV align=right><FONT face=宋體 size=2>范例 </FONT></DIV></TD> <TD><FONT face=宋體 size=2>#include<unistd.h><BR>main()<BR>{<BR>printf(“pid=%d\n”,getpid());<BR>}<BR></FONT></TD></TR> <TR> <TD vAlign=top width=80> <DIV align=right><FONT face=宋體 size=2>執行 </FONT></DIV></TD> <TD><FONT face=宋體 size=2>pid=1494 /*每次執行結果都不一定相同*/<BR></FONT></TD></TR> <TR> <TD vAlign=top width=80> <DIV align=right><BR><FONT face=宋體 size=2><A name=linuxc188></A></FONT></DIV></TD></TR> <TR> <TD vAlign=top width=80> <DIV align=right><FONT face=宋體 size=2><BR></FONT></DIV></TD> <TD><FONT face=宋體 size=2><BR>getppid(取得父進程的進程識別碼) </FONT></TD></TR> <TR> <TD vAlign=top width=80> <DIV align=right><FONT face=宋體 size=2>相關函數 </FONT></DIV></TD> <TD><FONT face=宋體 size=2>fork,kill,getpid<BR></FONT></TD></TR> <TR> <TD vAlign=top width=80> <DIV align=right><FONT face=宋體 size=2>表頭文件 </FONT></DIV></TD> <TD><FONT face=宋體 size=2>#include<unistd.h><BR></FONT></TD></TR> <TR> <TD vAlign=top width=80> <DIV align=right><FONT face=宋體 size=2>定義函數 </FONT></DIV></TD> <TD><FONT face=宋體 size=2>pid_t getppid(void);<BR></FONT></TD></TR> <TR> <TD vAlign=top width=80> <DIV align=right><FONT face=宋體 size=2>函數說明 </FONT></DIV></TD> <TD><FONT face=宋體 size=2>getppid()用來取得目前進程的父進程識別碼。<BR></FONT></TD></TR> <TR> <TD vAlign=top width=80> <DIV align=right><FONT face=宋體 size=2>返回值 </FONT></DIV></TD> <TD><FONT face=宋體 size=2>目前進程的父進程識別碼。<BR></FONT></TD></TR> <TR> <TD vAlign=top width=80> <DIV align=right><FONT face=宋體 size=2>范例 </FONT></DIV></TD> <TD><FONT face=宋體 size=2>#include<unistd.h><BR>main()<BR>{<BR>printf(“My parent ‘pid =%d\n”,getppid());<BR>}<BR></FONT></TD></TR> <TR> <TD vAlign=top width=80> <DIV align=right><FONT face=宋體 size=2>執行 </FONT></DIV></TD> <TD><FONT face=宋體 size=2>My parent pid =463<BR></FONT></TD></TR> <TR> <TD vAlign=top width=80> <DIV align=right><BR><FONT face=宋體 size=2><A name=linuxc189></A></FONT></DIV></TD></TR> <TR> <TD vAlign=top width=80> <DIV align=right><FONT face=宋體 size=2><BR></FONT></DIV></TD> <TD><FONT face=宋體 size=2><BR>getpriority(取得程序進程執行優先權) </FONT></TD></TR> <TR> <TD vAlign=top width=80> <DIV align=right><FONT face=宋體 size=2>相關函數 </FONT></DIV></TD> <TD><FONT face=宋體 size=2>setpriority,nice<BR></FONT></TD></TR> <TR> <TD vAlign=top width=80> <DIV align=right><FONT face=宋體 size=2>表頭文件 </FONT></DIV></TD> <TD><FONT face=宋體 size=2>#include<sys/time.h><BR>#include<sys/resource.h><BR></FONT></TD></TR> <TR> <TD vAlign=top width=80> <DIV align=right><FONT face=宋體 size=2>定義函數 </FONT></DIV></TD> <TD><FONT face=宋體 size=2>int getpriority(int which,int who);<BR></FONT></TD></TR> <TR> <TD vAlign=top width=80> <DIV align=right><FONT face=宋體 size=2>函數說明 </FONT></DIV></TD> <TD><FONT face=宋體 size=2>getpriority()可用來取得進程、進程組和用戶的進程執行優先權。<BR></FONT></TD></TR> <TR> <TD vAlign=top width=80> <DIV align=right><FONT face=宋體 size=2>參數 </FONT></DIV></TD> <TD><FONT face=宋體 size=2>which有三種數值,參數who 則依which值有不同定義<BR>which who 代表的意義<BR>PRIO_PROCESS who 為進程識別碼<BR>PRIO_PGRP who 為進程的組識別碼<BR>PRIO_USER who 為用戶識別碼<BR>此函數返回的數值介于-20 至20之間,代表進程執行優先權,數值越低代表有較高的優先次序,執行會較頻繁。<BR></FONT></TD></TR> <TR> <TD vAlign=top width=80> <DIV align=right><FONT face=宋體 size=2>返回值 </FONT></DIV></TD> <TD><FONT face=宋體 size=2>返回進程執行優先權,如有錯誤發生返回值則為-1 且錯誤原因存于errno。<BR></FONT></TD></TR> <TR> <TD vAlign=top width=80> <DIV align=right><FONT face=宋體 size=2>附加說明 </FONT></DIV></TD> <TD><FONT face=宋體 size=2>由于返回值有可能是-1,因此要同時檢查errno是否存有錯誤原因。最好在調用次函數前先清除errno變量。<BR></FONT></TD></TR> <TR> <TD vAlign=top width=80> <DIV align=right><FONT face=宋體 size=2>錯誤代碼 </FONT></DIV></TD> <TD><FONT face=宋體 size=2>ESRCH 參數which或who 可能有錯,而找不到符合的進程。EINVAL 參數which 值錯誤。<BR></FONT></TD></TR> <TR> <TD vAlign=top width=80> <DIV align=right><BR><FONT face=宋體 size=2><A name=linuxc190></A></FONT></DIV></TD></TR> <TR> <TD vAlign=top width=80> <DIV align=right><FONT face=宋體 size=2><BR></FONT></DIV></TD> <TD><FONT face=宋體 size=2><BR>nice(改變進程優先順序) </FONT></TD></TR> <TR> <TD vAlign=top width=80> <DIV align=right><FONT face=宋體 size=2>相關函數 </FONT></DIV></TD> <TD><FONT face=宋體 size=2>setpriority,getpriority<BR></FONT></TD></TR> <TR> <TD vAlign=top width=80> <DIV align=right><FONT face=宋體 size=2>表頭文件 </FONT></DIV></TD> <TD><FONT face=宋體 size=2>#include<unistd.h><BR></FONT></TD></TR> <TR> <TD vAlign=top width=80> <DIV align=right><FONT face=宋體 size=2>定義函數 </FONT></DIV></TD> <TD><FONT face=宋體 size=2>int nice(int inc);<BR></FONT></TD></TR> <TR> <TD vAlign=top width=80> <DIV align=right><FONT face=宋體 size=2>函數說明 </FONT></DIV></TD> <TD><FONT face=宋體 size=2>nice()用來改變進程的進程執行優先順序。參數inc數值越大則優先順序排在越后面,即表示進程執行會越慢。只有超級用戶才能使用負的inc 值,代表優先順序排在前面,進程執行會較快。<BR></FONT></TD></TR> <TR> <TD vAlign=top width=80> <DIV align=right><FONT face=宋體 size=2>返回值 </FONT></DIV></TD> <TD><FONT face=宋體 size=2>如果執行成功則返回0,否則返回-1,失敗原因存于errno中。<BR></FONT></TD></TR> <TR> <TD vAlign=top width=80> <DIV align=right><FONT face=宋體 size=2>錯誤代碼 </FONT></DIV></TD> <TD><FONT face=宋體 size=2>EPERM 一般用戶企圖轉用負的參數inc值改變進程優先順序。<BR></FONT></TD></TR> <TR> <TD vAlign=top width=80> <DIV align=right><BR><FONT face=宋體 size=2><A name=linuxc191></A></FONT></DIV></TD></TR> <TR> <TD vAlign=top width=80> <DIV align=right><FONT face=宋體 size=2><BR></FONT></DIV></TD> <TD><FONT face=宋體 size=2><BR>on_exit(設置程序正常結束前調用的函數) </FONT></TD></TR> <TR> <TD vAlign=top width=80> <DIV align=right><FONT face=宋體 size=2>相關函數 </FONT></DIV></TD> <TD><FONT face=宋體 size=2>_exit,atexit,exit<BR></FONT></TD></TR> <TR> <TD vAlign=top width=80> <DIV align=right><FONT face=宋體 size=2>表頭文件 </FONT></DIV></TD> <TD><FONT face=宋體 size=2>#include<stdlib.h><BR></FONT></TD></TR> <TR> <TD vAlign=top width=80> <DIV align=right><FONT face=宋體 size=2>定義函數 </FONT></DIV></TD> <TD><FONT face=宋體 size=2>int on_exit(void (* function)(int, void*),void *arg);<BR></FONT></TD></TR> <TR> <TD vAlign=top width=80> <DIV align=right><FONT face=宋體 size=2>函數說明 </FONT></DIV></TD> <TD><FONT face=宋體 size=2>on_exit()用來設置一個程序正常結束前調用的函數。當程序通過調用exit()或從main中返回時,參數function所指定的函數會先被調用,然后才真正由exit()結束程序。參數arg指針會傳給參數function函數,詳細情況請見范例。<BR></FONT></TD></TR> <TR> <TD vAlign=top width=80> <DIV align=right><FONT face=宋體 size=2>返回值 </FONT></DIV></TD> <TD><FONT face=宋體 size=2>如果執行成功則返回0,否則返回-1,失敗原因存于errno中。<BR></FONT></TD></TR> <TR> <TD vAlign=top width=80> <DIV align=right><FONT face=宋體 size=2>附加說明 </FONT></DIV></TD> <TD><FONT face=宋體 size=2><BR></FONT></TD></TR> <TR> <TD vAlign=top width=80> <DIV align=right><FONT face=宋體 size=2>范例 </FONT></DIV></TD>
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -