Linux C程式設計(二)

2021-08-20 14:31:56 字數 2214 閱讀 3419

1、父程序建立乙個新的文字檔案,並向文字檔案中寫入資料,當資料寫入完成後,用匿名管道通訊的方式將該檔案傳輸給子程序,同時用命名管道檔案將該檔案傳輸給另乙個程序

#include

#include

#include

#include

#include

#include

#include

#define bufsz 256

#define fifo_name "/home/xianfeng/my_fifo"

#define buffer_size pipe_buf

intmain

(void)if

((pid =

fork()

)<0)

else

if(pid >0)

}printf

("process %d opening fifo\n"

,getpid()

);res =

open

(fifo_name, o_wronly)

;printf

("process %d result %d\n"

,getpid()

, res)

;sleep(5

);if(res !=-1

)(void

)close

(res)

;printf

("process %d finished\n"

,getpid()

);exit

(exit_success);}

else

return0;

}

#include #include #include #include #include #include #include #include #define fifo_name "/home/xianfeng/my_fifo"

#define buffer_size pipe_buf

#define ten_meg (1024 * 1024 * 10)

int main()

2、利用套接字分別編寫乙個簡易的伺服器端程式和客戶端程式,實現基於internet的雙向網路通訊

/*client.c*/

#include #include #include #include #include #include #include int main()

//通訊操作

write(sockfd, &ch, 1);

read(sockfd, &ch, 1);

printf("char from server = %c\n", ch);

close(sockfd);

exit(0);

}

/*server.c*/

#include #include #include #include #include #include #include int main()

}

3、假設有乙個整數初值為200,開20個執行緒,每個執行緒將這個整數減掉10,最後剛好把這個整數減到0,;要求考慮同步與互斥管理,實現死鎖的檢測和避免管理

#include #include #include #include #include #include #define num_threads 20

void *thread_function(void *arg);

sem_t bin_sem;

#define work_size 1024

char work_area[work_size];

int num=200;

int main()

for(lots_of_threads = 0; lots_of_threads < num_threads; lots_of_threads++)

sleep(1);

}for(lots_of_threads = num_threads - 1; lots_of_threads >= 0; lots_of_threads--)

else

}printf("all done\n");

exit(exit_success);

}void *thread_function(void *arg)

linux c 筆記 網路程式設計(二)

套接字 struct sockaddr結構定義了一種通用的套接字位址,他在linux socket.h中定義如下 struct sockaddr 現在一般使用下面這個sockaddr in結構 用來設定 獲取位址資訊 struct sockaddr in 其中,in addr這個資料結構 struc...

linux c 程式設計

linux下為了安全性不能雙擊執行控制台程式,只有gui程式才能雙擊執行.linux下檔案的型別是不依賴於其字尾名的,但一般來講 o,是目標檔案,相當於windows中的.obj檔案 so 為共享庫,是shared object,用於動態連線的,和dll差不多 a為靜態庫,是好多個.o合在一起,用於...

Linux C程式設計

套接字 sockets 即為網路程序id,是由執行這個程序的計算機的ip位址和這個程序使用的埠 port 組成.可以只用 netstat all 檢視當前系統中網路應用程序的套接字和埠.可以使用 輸出重定向到檔案.linux在標頭檔案中定義了通用的套接字結構型別,可供不同協議呼叫 struct so...