控制 套介面的模式。
#include
int pascal far ioctl
socket(
socket s, long
cmd, u_long far* argp);
s:乙個標識
套介面的描述字。
cmd:對
套介面s的操作命令。
argp:指向
cmd命令所帶引數的
指標。本函式可用於任一狀態的任一
套介面。它用於獲取與
套介面相關的操作引數,而與具體協議或通訊子系統無關。支援下列命令:
允許或禁止
套介面s的非阻塞模式。argp指向乙個無符號
長整型,如允許非阻塞模式則非零,如禁止非阻塞模式則為零。當建立乙個
套介面時,它就處於阻塞模式(也就是說非阻塞模式被禁止)。這與bsd
套介面是一致的。wsaasynselect()函式將套介面自動設定為非阻塞模式。如果已對乙個
套介面進行了wsaasynselect() 操作,則任何用ioctl
socket()來把套介面]重新設定成阻塞模式的試圖將以wsaeinval失敗。為了把
套介面重新設定成阻塞模式,
應用程式必須首先用wsaasynselect()呼叫(ievent引數置為0)來禁止wsaasynselect()。
確定 套介面s自動讀入的資料量。argp指向乙個無符號
長整型,其中存有ioctl
socket()的返回值。如果s是socket_stream型別,則fionread返回在一次
recv()中所接收的所有資料量。這通常與
套介面中排隊的資料總量相同。如果s是sock_dgram 型,則fionread返回
套介面上排隊的第乙個資料報大小。
確實是否所有的
帶外資料都已被讀入。這個命令僅適用於sock_stream型別的
帶外資料(so_oobinline)。如無
帶外資料等待讀入,則該操作返回true真。否則的話返回false假,下乙個
recv()或
recvfrom()操作將檢索「標記」前一些或所有資料。
應用程式可用siocatmark操作來確定是否有資料剩下。如果在「緊急」(帶外)資料[前有常規資料,則按序接收這些資料(請注意,
recv()和
recvfrom()操作不會在一次呼叫中混淆常規資料與帶外數]據)。argp指向乙個bool型數,ioctl
socket()在其中存入返回值。
本函式為berkeley
套介面函式ioctl()的乙個子集。其中沒有與fioasync等價的命令,siocatmark是
套介面層次支援的唯一命令。
成功後,ioctl
socket()返回0。否則的話,返回socket_error錯誤,
應用程式可通過wsagetlasterror()獲取相應錯誤**。
錯誤**:
wsanotinitialised:在使用此
api之前應首先成功地呼叫wsastartup()。
wsaenetdown:windows
套介面實現檢測到網路子系統失效。
wsaeinval:
cmd為非法命令,或者argp所指引數不適用於該
cmd命令,或者該命令
不適用於此種型別的
套介面。
wsaeinprogress:乙個阻塞的windows
套介面呼叫正在執行中。
wsaenotsock:描述字不是乙個
套介面。
socket(),
setsockopt(), getsockopt(), wsaasyncselect().
該命令不適用於此種型別的套介面。
wsaeinprogress:乙個阻塞的windows套介面呼叫正在執行中。
wsaenotsock:描述字不是乙個套介面。
下面這段**演示了ioctlsocket函式的使用方式
c++**
#include
#include
#pragma comment(lib, "ws2_32.lib")
void main()
//-------------------------
[1]// set the socket i/o mode: in this case fionbio
// enables or disables the blocking mode for the
// socket based on the numerical value of imode.
// if imode = 0, blocking is enabled;
// if imode != 0, non-blocking mode is enabled.
iresult = ioctlsocket(m_socket, fionbio, &imode);
if (iresult != no_error)
printf("ioctlsocket failed with error: %ld\n", iresult);
}
函式說明python函式巢狀筆記 函式說明
ps 今天上午,非常鬱悶,有很多簡單基礎的問題搞得我有些迷茫,哎,幾天不寫就忘。目前又不當coo,還是得用心記 哦!關於函式內嵌函式作用域的條記 def test i 0defa print locals a printi test 這段,locals 的值為空,說明內嵌的a函式沒有認默引入i de...
CFile Open函式說明
1 nopenflags cfile modecreate 建立乙個新的檔案,如果檔案存在將檔案擷取成長度為0。cfile modenotruncate 此標誌總是與modecreate 配合使用,如果檔案存在,不將檔案擷取成長度為0 如果檔案不存在即建立新檔案。這個功能往往很好用,比如說,當你需要...
signal函式說明
c traps and pitfalls 對signal函式解釋得非常詳細。中void signal int sig,void handler int int int p 這是乙個函式指標,p所指向的函式是乙個不帶任何引數,並且返回值為int的乙個函式.int fun 這個式子與上面式子的區別在於用...