Linux 線程庫

小弟總結的,請各位大俠指導;編程

Linux 庫網絡

Linux 是多用戶多任務的操做系統... 這寫簡單的就很少說了。多線程

Linux下的 多線程遵循POSIX接口,即 pthread。 LinuxThreads 是現有Linux 平臺上最爲普遍的線程庫,其常常會用到下面的一些函數:

int  pthread_created(pthread_t thread ,const pthread_attr_t *ttr, void *(*func) (void) ,void *arg)
 
 第一個參數 保存線程ID,以此:第2個 說明要建立的線程屬性,NULL 表示缺省。

第 3  線程運行函數的起始地址,一個(*void)參數。 第4 個 參數 通常指向一個結構體。



pthread_join() 等待線程結束。

int pthread_join(pthread_t thread, void * *statues)
// thread 線程標識符  ,

我去啊。感受都仍是比較簡單,一下很少說了。看下Linux網絡編程方面:函數

ssize_t recvfrom(int sock, void *buf, size_t len, int flags, struct sockaddr *from, socklen_t *fromlen);

最經常使用的函數吧。操作系統

sock:索引將要從其接收數據的套接字。 buf:存放消息接收後的緩衝區。 len:buf所指緩衝區的容量。 flags:是如下一個或者多個標誌的組合體,可經過or操做連在一塊兒 MSG_DONTWAIT:操做不會被阻塞。 MSG_ERRQUEUE: 指示應該從套接字的錯誤隊列上接收錯誤值,依據不一樣的協議,錯誤值以某種輔佐性消息的方式傳遞進來, 使用者應該提供足夠大的緩衝區。致使錯誤的原封包經過msg_iovec做爲通常的數據來傳遞。致使錯誤的數據報原目標地址做爲msg_name被提供。 錯誤以sock_extended_err結構形態被使用。線程

from:指向存放對端地址的區域,若是爲NULL,不儲存對端地址。 fromlen:做爲入口參數,指向存放表示from最大容量的內存單元。做爲出口參數,指向存放表示from實際長度的內存單元。code

msg:指向存放進入消息頭的內存緩衝,結構形態以下 struct msghdr { void msg_name; / optional address / socklen_t msg_namelen; / size of address */ struct iovec msg_iov; / scatter/gather array / size_t msg_iovlen; / # elements in msg_iov */ void msg_control; / ancillary data, see below / socklen_t msg_controllen; / ancillary data buffer len / int msg_flags; / flags on received message */ };索引

成功執行時,返回接收到的字節數。另外一端已關閉則返回0。失敗返回-1,errno被設爲如下的某個值
EAGAIN:套接字已標記爲非阻塞,而接收操做被阻塞或者接收超時 EBADF:sock不是有效的描述詞 ECONNREFUSE:遠程主機阻絕網絡鏈接 EFAULT:內存空間訪問出錯 EINTR:操做被信號中斷 EINVAL:參數無效 ENOMEM:內存不足 ENOTCONN:與面向鏈接關聯的套接字還沒有被鏈接上 ENOTSOCK:sock索引的不是套接字接口

先這樣吧。感受沒什麼內容,衆所周知啊。。。 就當增強記憶吧。哈哈哈哈..隊列

相關文章
相關標籤/搜索