Linux 檔案描述符設定為非阻塞的方法

2021-07-03 16:00:03 字數 748 閱讀 5518

或者一步到位的方式:

fcntl(socket,f_setfl,fcntl(socket,f_getfl)|o_nonblock);

#include#includeint socket(int domain,int type,int protocal);

type 引數指定服務型別,服務型別主要有

sock_stream

服務,sock_dgream

服務,值得指出的是,在

linux

核心版本

2.6.17

起,type

引數可以接受上述服務的同時也可以接受下面的兩個標誌與之相與:

sock_nonblock,sock_cloexec,

它們分別表示將新建立

sock 

設為非阻塞的,以及在

fork

呼叫建立子程序時在子程序中關閉

socket.

但是之前的版本並不支援。

int fd_sock = socket(af_inet,sock_stream,0);

int fd_sock = socket(af_inet,sock_stream|sock_nonblock,0);

上述**表示建立的乙個新的socket

為非阻塞式

linux檔案描述符

本文介紹了檔案描述符,1 首先說什麼是檔案描述符,它有什麼作用?檔案描述符是乙個簡單的整數,用以標明每乙個被程序所開啟的檔案和socket。基於檔案描述符的輸入輸出函式 open 開啟乙個檔案,並指定訪問該檔案的方式,呼叫成功後返回乙個檔案描述符。creat 開啟乙個檔案,如果該檔案不存在,則建立它...

linux檔案描述符

當某個程式開啟檔案時,作業系統返回相應的檔案描述符,程式為了處理該檔案必須引用此描述符。所謂的檔案描述符是乙個低階的正整數。最前面的三個檔案描述符 0,1,2 分別與標準輸入 stdin 標準輸出 stdout 和標準錯誤 stderr 對應。因此,函式 scanf 使用 stdin,而函式 pri...

Linux 檔案描述符

我們之前就知道在linux作業系統下 一切皆檔案 所以在這個條件下,所有研究的物件都變相的相當於研究檔案,那麼對檔案系統的研究也應該是必須的。我們的核心利用檔案描述符來訪問檔案,每個檔案描述符都是非負整數,開啟現存的檔案或者是新建檔案時,核心會返回乙個檔案描述符,讀寫檔案也需要使用檔案描述符來指定待...