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...