原创 UNP——TCP回射服務器

非阻塞connect server #include <stdio.h> #include <stdlib.h> #include "tcpser.h" #include <arpa/inet.h> #include <unist

原创 UNP——TCP分析

tcpserver.c #include <stdio.h> #include <stdlib.h> #include <errno.h> #include <unistd.h> #include <sys/socket.h> #

原创 UNP——socket套接字分析

1. socket流程 發送方: int socket(int domain, int type, int protocol); ssize_t sendto(int socket, const void *buffer, si

原创 APUE——線程創建與終止

線程鏈接 線程同步 線程同步1 線程的分離和結合 1 線程基礎 線程pi的類型爲pthread_t #include <pthread.h> int pthread_equal( pthread_t tid1, pthread_

原创 APUE——fork分析

1、fork 現在P1用fork()函數爲進程創建一個子進程P2, a. fork 內核: 複製P1的正文段,數據段,堆,棧這四個部分,注意是其內容相同。 爲這四個部分分配物理塊,P2的:正文段->PI的正文段的物理塊,其

原创 智能指針shared_ptr,unique_ptr

make_shared簡述 智能指針描述 unique_ptr描述 shared_ptr shared_ptr通過get獲取指向的指針!shared_ptr< A> t3 = new A;這是不可以的,這是顯示的!!!不能直接賦值

原创 APUE——system函數詳細分析

相關鏈接1 相關鏈接2 1、SYSTEM函數原理 #include <stdlib.h> int system( const char *cmdstring ); system()是先fork子進程,然後execl執行傳入的c

原创 Effective C++ ——如果要爲所有參數隱形轉換,需要non-member

effective c++ 條款46 總結: 如果需要爲某個函數所有參數(包括This指針所指的隱形參數)進行類型轉換,則需要這個函數是non-member 普通函數會發生隱式類型轉換 函數模板自動類型推導不發生隱式類型轉換(可

原创 APUE——線程取消

APUE原文 線程取消鏈接 1. 線程取消過程 先描述一下取消一個線程的過程: 其他線程通過調用pthread_cancel()函數,向目標線程發送取消請求(cancellation request)。 取消請求發出後,根

原创 APUE——線程控制之線程和fork

線程控制之線程和fork fork()函數與Linux中的多線程編程 使用 Mutex 實現進程間同步 fork 子進程通過繼承整個地址空間的副本,也從父進程那裏繼承了所有互斥量、讀寫鎖和條件變量的狀態。如果父進程包含多個線程,

原创 APUE——線程同步屬性與遞歸鎖

參考文檔1 參考文檔2 遞歸鎖 1、互斥量屬性 值得注意的兩個屬性是進程共享屬性和類型屬性 #include <pthread.h> int pthread_mutexattr_init( pthread_mutexattr_t

原创 APUE——sigprocmask,sigaction

sigprocmask 在調用sigprocmask後如果有任何未決的、不再阻塞的信號,則在sigprocmask返回前,至少會將其中一個信號遞送給該進程。 不能阻塞SIGKILL和SIGSTOP信號。 #include <sig

原创 APUE——標準IO相關

1.緩衝相關 標準I/O庫提供緩衝的目的是儘可能減少使用read和write調用的次數。它也對每個I/O流自動地進行緩衝管理 全緩衝:標準I/O緩衝區滿了後執行IO操作,也可使用fflush強制沖洗 行緩衝:換行時候執行IO操作

原创 APUE——alarm與pause、sigsetjmp、siglongjmp、sigsuspend

1、alarm與pause 每個進程只能有一個alarm,如果之前有個alarm,在本次alarm執行完畢的時候如果還沒有結束,則本次alarm返回上次alarm剩餘的值。如果本次alarm執行的結果爲0,則取消原來的鬧鐘。 S

原创 APUE——進程終止

abort 與return exit的關係 進程終止 linux進程控制函數–fork,exec,exit,wait,sleep 1. 進程終止方式 進程有下面5種正常終止方式: 在main函數內執行return語句。這等效於