freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

linux系統(tǒng)api函數(shù)手冊(cè)-文庫(kù)吧

2025-06-14 06:29 本頁(yè)面


【正文】 pid_t l_pid。 /*鎖定動(dòng)作的進(jìn)程*/8 }。l_type 有三種狀態(tài):F_RDLCK 建立一個(gè)供讀取用的鎖定F_WRLCK 建立一個(gè)供寫(xiě)入用的鎖定F_UNLCK 刪除之前建立的鎖定l_whence 也有三種方式:SEEK_SET 以文件開(kāi)頭為鎖定的起始位置。SEEK_CUR 以目前文件讀寫(xiě)位置為鎖定的起始位置SEEK_END 以文件結(jié)尾為鎖定的起始位置。返回值成功則返回0,若有錯(cuò)誤則返回1,錯(cuò)誤原因存于errno.fgets(由文件中讀取一字符串)頭文件1 include定義函數(shù)1 char * fgets(char * s,int size,FILE * stream)。函數(shù)說(shuō)明fgets()用來(lái)從參數(shù)stream所指的文件內(nèi)讀入字符并存到參數(shù)s所指的內(nèi)存空間,直到出現(xiàn)換行字符、讀到文件尾或是已讀了size1個(gè)字符為止,最后會(huì)加上NULL作為字符串結(jié)束。返回值gets()若成功則返回s指針,返回NULL則表示有錯(cuò)誤發(fā)生。fputs(將一指定的字符串寫(xiě)入文件內(nèi))頭文件1 include定義函數(shù)1 int fputs(const char * s,FILE * stream)。函數(shù)說(shuō)明fputs()用來(lái)將參數(shù)s所指的字符串寫(xiě)入到參數(shù)stream所指的文件內(nèi)。返回值若成功則返回寫(xiě)出的字符個(gè)數(shù),返回EOF則表示有錯(cuò)誤發(fā)生。(二)內(nèi)存控制篇calloc(配置內(nèi)存空間)頭文件1 include 定義函數(shù)1 void *calloc(size_t nmemb,size_t size)。函數(shù)說(shuō)明calloc()用來(lái)配置nmemb個(gè)相鄰的內(nèi)存單位,每一單位的大小為size,并返回指向第一個(gè)元素的指針。這和使用下列的方式效果相同:malloc(nmemb*size)。不過(guò),在利用calloc()配置內(nèi)存時(shí)會(huì)將內(nèi)存內(nèi)容初始化為0。返回值若配置成功則返回一指針,失敗則返回NULL。free(釋放原先配置的內(nèi)存)頭文件1 include定義函數(shù)1 void free(void *ptr)。函數(shù)說(shuō)明參數(shù)ptr為指向先前由malloc()、calloc()或realloc()所返回的內(nèi)存指針。調(diào)用free()后ptr所指的內(nèi)存空間便會(huì)被收回。假若參數(shù)ptr所指的內(nèi)存空間已被收回或是未知的內(nèi)存地址,則調(diào)用free()可能會(huì)有無(wú)法預(yù)期的情況發(fā)生。若參數(shù)ptr為NULL,則free()不會(huì)有任何作用。malloc(配置內(nèi)存空間)頭文件1 include定義函數(shù)1 void * malloc(size_t size)。函數(shù)說(shuō)明malloc()用來(lái)配置內(nèi)存空間,其大小由指定的size決定。返回值若配置成功則返回一指針,失敗則返回NULL。范例void p = malloc(1024)。 /*配置1k的內(nèi)存*/(三)進(jìn)程操作篇execl(執(zhí)行文件)頭文件1 include定義函數(shù)1 int execl(const char * path,const char * arg,....)。函數(shù)說(shuō)明execl()用來(lái)執(zhí)行參數(shù)path字符串所代表的文件路徑,接下來(lái)的參數(shù)代表執(zhí)行該文件時(shí)傳遞過(guò)去的argv(0)、argv[1]……,最后一個(gè)參數(shù)必須用空指針(NULL)作結(jié)束。返回值如果執(zhí)行成功則函數(shù)不會(huì)返回,執(zhí)行失敗則直接返回1,失敗原因存于errno中。execlp(從PATH 環(huán)境變量中查找文件并執(zhí)行)頭文件include定義函數(shù)1 int execlp(const char * file,const char * arg,……);函數(shù)說(shuō)明execlp()會(huì)從PATH 環(huán)境變量所指的目錄中查找符合參數(shù)file的文件名,找到后便執(zhí)行該文件,然后將第二個(gè)以后的參數(shù)當(dāng)做該文件的argv[0]、argv[1]……,最后一個(gè)參數(shù)必須用空指針(NULL)作結(jié)束。返回值如果執(zhí)行成功則函數(shù)不會(huì)返回,執(zhí)行失敗則直接返回1,失敗原因存于errno 中。錯(cuò)誤代碼參考execve()。execv(執(zhí)行文件)頭文件1 include定義函數(shù)1 int execv (const char * path, char * const argv[ ])。函數(shù)說(shuō)明execv()用來(lái)執(zhí)行參數(shù)path字符串所代表的文件路徑,與execl()不同的地方在于execve()只需兩個(gè)參數(shù),第二個(gè)參數(shù)利用數(shù)組指針來(lái)傳遞給執(zhí)行文件。返回值如果執(zhí)行成功則函數(shù)不會(huì)返回,執(zhí)行失敗則直接返回1,失敗原因存于errno 中。錯(cuò)誤代碼請(qǐng)參考execve()。execve(執(zhí)行文件)頭文件1 include定義函數(shù)1 int execve(const char * filename,char * const argv[ ],char * const envp[ ])。函數(shù)說(shuō)明execve()用來(lái)執(zhí)行參數(shù)filename字符串所代表的文件路徑,第二個(gè)參數(shù)系利用數(shù)組指針來(lái)傳遞給執(zhí)行文件,最后一個(gè)參數(shù)則為傳遞給執(zhí)行文件的新環(huán)境變量數(shù)組。返回值如果執(zhí)行成功則函數(shù)不會(huì)返回,執(zhí)行失敗則直接返回1,失敗原因存于errno 中。錯(cuò)誤代碼EACCES1. 欲執(zhí)行的文件不具有用戶(hù)可執(zhí)行的權(quán)限。2. 欲執(zhí)行的文件所屬的文件系統(tǒng)是以noexec 方式掛上。EPERM,執(zhí)行者并不具有root權(quán)限,欲執(zhí)行的文件具有SUID 或SGID 位。,欲執(zhí)行的文件具有SUID 或SGID 位元,但執(zhí)行者并不具有root權(quán)限。E2BIG 參數(shù)數(shù)組過(guò)大ENOEXEC 無(wú)法判斷欲執(zhí)行文件的執(zhí)行文件格式,有可能是格式錯(cuò)誤或無(wú)法在此平臺(tái)執(zhí)行。EFAULT 參數(shù)filename所指的字符串地址超出可存取空間范圍。ENAMETOOLONG 參數(shù)filename所指的字符串太長(zhǎng)。ENOENT 參數(shù)filename字符串所指定的文件不存在。ENOMEM 核心內(nèi)存不足ENOTDIR 參數(shù)filename字符串所包含的目錄路徑并非有效目錄EACCES 參數(shù)filename字符串所包含的目錄路徑無(wú)法存取,權(quán)限不足ELOOP 過(guò)多的符號(hào)連接ETXTBUSY 欲執(zhí)行的文件已被其他進(jìn)程打開(kāi)而且正把數(shù)據(jù)寫(xiě)入該文件中EIO I/O 存取錯(cuò)誤ENFILE 已達(dá)到系統(tǒng)所允許的打開(kāi)文件總數(shù)。EMFILE 已達(dá)到系統(tǒng)所允許單一進(jìn)程所能打開(kāi)的文件總數(shù)。EINVAL 欲執(zhí)行文件的ELF執(zhí)行格式不只一個(gè)PT_INTERP節(jié)區(qū)EISDIR ELF翻譯器為一目錄ELIBBAD ELF翻譯器有問(wèn)題。execvp(執(zhí)行文件)頭文件1 include定義函數(shù)1 int execvp(const char *file ,char * const argv [])。函數(shù)說(shuō)明execvp()會(huì)從PATH 環(huán)境變量所指的目錄中查找符合參數(shù)file 的文件名,找到后便執(zhí)行該文件,然后將第二個(gè)參數(shù)argv傳給該欲執(zhí)行的文件。返回值如果執(zhí)行成功則函數(shù)不會(huì)返回,執(zhí)行失敗則直接返回1,失敗原因存于errno中。錯(cuò)誤代碼請(qǐng)參考execve()。exit(正常結(jié)束進(jìn)程)頭文件1 include定義函數(shù)1 void exit(int status)。函數(shù)說(shuō)明exit()用來(lái)正常終結(jié)目前進(jìn)程的執(zhí)行,并把參數(shù)status返回給父進(jìn)程,而進(jìn)程所有的緩沖區(qū)數(shù)據(jù)會(huì)自動(dòng)寫(xiě)回并關(guān)閉未關(guān)閉的文件。_exit(結(jié)束進(jìn)程執(zhí)行)頭文件1 include定義函數(shù)1 void _exit(int status)。函數(shù)說(shuō)明_exit()用來(lái)立刻結(jié)束目前進(jìn)程的執(zhí)行,并把參數(shù)status返回給父進(jìn)程,并關(guān)閉未關(guān)閉的文件。此函數(shù)調(diào)用后不會(huì)返回,并且會(huì)傳遞SIGCHLD信號(hào)給父進(jìn)程,父進(jìn)程可以由wait函數(shù)取得子進(jìn)程結(jié)束狀態(tài)。附加說(shuō)明_exit()不會(huì)處理標(biāo)準(zhǔn)I/O 緩沖區(qū),如要更新緩沖區(qū)請(qǐng)使用exit()。vfork(建立一個(gè)新的進(jìn)程)頭文件1 include定義函數(shù)1 pid_t vfork(void)。函數(shù)說(shuō)明vfork()會(huì)產(chǎn)生一個(gè)新的子進(jìn)程,其子進(jìn)程會(huì)復(fù)制父進(jìn)程的數(shù)據(jù)與堆棧空間,并繼承父進(jìn)程的用戶(hù)代碼,組代碼,環(huán)境變量、已打開(kāi)的文件代碼、工作目錄和資源限制等。Linux 使用copyonwrite(COW)技術(shù),只有當(dāng)其中一進(jìn)程試圖修改欲復(fù)制的空間時(shí)才會(huì)做真正的復(fù)制動(dòng)作,由于這些繼承的信息是復(fù)制而來(lái),并非指相同的內(nèi)存空間,因此子進(jìn)程對(duì)這些變量的修改和父進(jìn)程并不會(huì)同步。此外,子進(jìn)程不會(huì)繼承父進(jìn)程的文件鎖定和未處理的信號(hào)。注意,Linux不保證子進(jìn)程會(huì)比父進(jìn)程先執(zhí)行或晚執(zhí)行,因此編寫(xiě)程序時(shí)要留意死鎖或競(jìng)爭(zhēng)條件的發(fā)生。返回值如果vfork()成功則在父進(jìn)程會(huì)返回新建立的子進(jìn)程代碼(PID),而在新建立的子進(jìn)程中則返回0。如果vfork 失敗則直接返回1,失敗原因存于errno中。錯(cuò)誤代碼EAGAIN 內(nèi)存不足。ENOMEM 內(nèi)存不足,無(wú)法配置核心所需的數(shù)據(jù)結(jié)構(gòu)空間。getpid(取得進(jìn)程識(shí)別碼)頭文件1 include定義函數(shù)1 pid_t getpid(void)。函數(shù)說(shuō)明getpid()用來(lái)取得目前進(jìn)程的進(jìn)程識(shí)別碼,許多程序利用取到的此值來(lái)建立臨時(shí)文件,以避免臨時(shí)文件相同帶來(lái)的問(wèn)題。返回值目前進(jìn)程的進(jìn)程識(shí)別碼getppid(取得父進(jìn)程的進(jìn)程識(shí)別碼)頭文件1 include定義函數(shù)1 pid_t getppid(void)。函數(shù)說(shuō)明getppid()用來(lái)取得目前進(jìn)程的父進(jìn)程識(shí)別碼。返回值目前進(jìn)程的父進(jìn)程識(shí)別碼。1wait(等待子進(jìn)程中斷或結(jié)束)頭文件1 includesys/2 includesys/定義函數(shù)1 pid_t wait (int * status)。函數(shù)說(shuō)明wait()會(huì)暫時(shí)停止目前進(jìn)程的執(zhí)行,直到有信號(hào)來(lái)到或子進(jìn)程結(jié)束。如果在調(diào)用wait()時(shí)子進(jìn)程已經(jīng)結(jié)束,則wait()會(huì)立即返回子進(jìn)程結(jié)束狀態(tài)值。子進(jìn)程的結(jié)束狀態(tài)值會(huì)由參數(shù)status 返回,而子進(jìn)程的進(jìn)程識(shí)別碼也會(huì)一快返回。如果不在意結(jié)束狀態(tài)值,則參數(shù)status可以設(shè)成NULL。子進(jìn)程的結(jié)束狀態(tài)值請(qǐng)參考waitpid()。返回值如果執(zhí)行成功則返回子進(jìn)程識(shí)別碼(PID),如果有錯(cuò)誤發(fā)生則返回1。失敗原因存于errno中。1waitpid(等待子進(jìn)程中斷或結(jié)束)頭文件1 includesys/2 includesys/定義函數(shù)1 pid_t waitpid(pid_t pid,int * status,int options)。函數(shù)說(shuō)明waitpid()會(huì)暫時(shí)停止目前進(jìn)程的執(zhí)行,直到有信號(hào)來(lái)到或子進(jìn)程結(jié)束。如果在調(diào)用wait()時(shí)子進(jìn)程已經(jīng)結(jié)束,則wait()會(huì)立即返回子進(jìn)程結(jié)束狀態(tài)值。子進(jìn)程的結(jié)束狀態(tài)值會(huì)由參數(shù)status返回,而子進(jìn)程的進(jìn)程識(shí)別碼也會(huì)一快返回。如果不在意結(jié)束狀態(tài)值,則參數(shù)status可以設(shè)成 NULL。參數(shù)pid為欲等待的子進(jìn)程識(shí)別碼,其他數(shù)值意義如下:pid1 等待進(jìn)程組識(shí)別碼為pid絕對(duì)值的任何子進(jìn)程。pid=1 等待任何子進(jìn)程,相當(dāng)于wait()。pid=0 等待進(jìn)程組識(shí)別碼與目前進(jìn)程相同的任何子進(jìn)程。pid0 等待任何子進(jìn)程識(shí)別碼為pid的子進(jìn)程。參數(shù)option可以為0 或下面的OR 組合WNOHANG 如果沒(méi)有任何已經(jīng)結(jié)束的子進(jìn)程則馬上返回,不予以等待。WUNTRACED 如果子進(jìn)程進(jìn)入暫停執(zhí)行情況則馬上返回,但結(jié)束狀態(tài)不予以理會(huì)。子進(jìn)程的結(jié)束狀態(tài)返回后存于status,底下有幾個(gè)宏可判別結(jié)束情況WIFEXITED(status)如果子進(jìn)程正常結(jié)束則為非0值。WEXITSTATUS(status)取得子進(jìn)程exit()返回的結(jié)束代碼,一般會(huì)先用WIFEXITED 來(lái)判斷是否正常結(jié)束才能使用此宏。WIFSIGNALED(status)如果子進(jìn)程是因?yàn)樾盘?hào)而結(jié)束則此宏值為真WTERMSIG(status)取得子進(jìn)程因信號(hào)而中止的信號(hào)代碼,一般會(huì)先用WIFSIGNALED 來(lái)判斷后才使用此宏。WIFSTOPPED(status)如果子進(jìn)
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1