原创 進程通信消息隊列代碼及一些注意點

發送方 #include <stdio.h> #include <stdlib.h> #include <string.h> #include <sys/msg.h> #define MAXLENGTH 80 struct m

原创 OSI七層模型與TCP/IP模型

OSI七層模型 從低到高:物理層、數據鏈路層、網絡層、傳輸層、會話層、表示層、應用層。 物理層:並不是指物理設備或者物理媒體。而是有關物理設備通過物理媒體進行互聯的描述和規定。該層定義了接口的機械特性、電氣特性、功能特性、規程特性等4個

原创 使用assert.h簡介

1、assert的作用 int i = 0; assert(i == 0); printf("hello_world\n"); 當括號中的表達式爲true時,程序繼續執行下一條語句。 當括號中的表達式爲false,程序將直接終止運行

原创 進程通信之共享內存與信號量

信號量:通過設置一個值val大於0的整數,表示當前最多允許val個進程進入臨界區。同時定義P函數,函數中對val進行減1操作,每當一個進程進入臨界區時執行一次P函數,當val爲0時當前進程等待。定義V函數,對val進行加1操作,當

原创 使用errno.h示例

1、errno.h簡介 errno = 0; sqrt(-1.0); if(errno == EDOM) perror("EDOM error : "); 首先將errno置零。然後給出可能出錯的語句。最後檢查是否出錯。 ED

原创 linux內核編程實驗三

內核的定時機制實驗 問題 A 使用ITIMER_REAL型定時器實現一個gettimeofday(),將它設置爲每秒產生一個信號, 並計算已經經過的秒數。 問題 B 使用以上實現的 gettimeofday()實現一個精確

原创 linux下c編程之UDP

1、服務器端 創建socket。 綁定服務器端口和IP。 接收數據、發送數據。發送數據需要根據接收數據的地址或者自己指定發送地址。 #include <stdio.h> #include <string.h> #include <std

原创 linux下c編程條件變量

頭文件 pthread.h struct cangku 中定義了空間大小爲7的 char 數組。讀遊標、寫遊標。非空、非滿條件變量。互斥鎖。 遊標均採用從0 1 2 3 4 5 6 0 1 2...的移動方式。倉庫初始化時,讀、寫遊標被置

原创 使用Socket發送Http請求

1、建立TCP連接。 SocketAddress addr = new InetSocketAddress("www.baidu.com",80); Socket sock = new Socket(); sock.connect(add

原创 linux線程pthread互斥鎖

需要引用頭文件 <pthread.h> pthread_create(&thread1,NULL,(void *)&dealfunction,NULL); //創建線程 thread1聲明格式:pthread_t thread1。 NU

原创 linux下c編程socket通信

1、服務器端 建立socket。int sockfd = socket(AF_FAMILY,SOCK_STREAM,0); 綁定IP和端口。bind(sockfd,(struct sockaddr *)(&server_addr),siz

原创 float.h浮點型範圍和精度

摘自:http://www.runoob.com/cprogramming/c-standard-library-float-h.html C 標準庫 - <float.h> 簡介 C 標準庫的 float.h 頭文件包含了一組與

原创 setjmp.h

1、示例代碼 #include #include int main() { jmp_buf j;//保存當前環境 if(setjmp(j) == 0) { printf("setjmp初始化

原创 使用ctype.h示例

1、常用函數 isalpha : 是否爲26個英文字母,包括大小寫形式。 isdigit : 是否爲十進制數字,0-9。 isxdigit : 是否爲十六進制數字,0-9,a-f。 isalnum : 是否爲字母或數字,a-z,A-Z,0

原创 linux常用信號列表

SIGHUP:本信號在用戶終端結束時發出,通常是在終端的控制進程結束時,通知同一會話期內的各個作業,這時他們與控制終端不在關聯。比如,登錄linux時,系統會自動分配給登錄用戶一個控制終端,在這個終端運行的所有程序,包括前臺和後臺