
Linux 系统编程
文章平均质量分 66
zhuriyuxiao
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Linux 建议锁和命令锁
#include #include #include #include #include #include int test_lock(int fd, short whence, off_t offset, off_t len) { int ret; struct flock wlock; wlock.l_ty原创 2012-04-05 15:23:18 · 118 阅读 · 0 评论 -
Linux 线程, 线程同步与互斥, 进程间通信, 进程等系统编程
例子工作过程: 多个进入队列线程,用户放入命令,一个出队线程读取相应命令,发送给(通过管道)相应执行命令线程。 本例例子涵盖系统编程大部分内容(除网络部分,但是例子有些武断,本例子可以继续改进,改进点如下: 1.mytest.c程序改为python,ruby等脚本编写 2.多个进入队列线程,通过网络来模拟。 3.加入信号处理 ##########################原创 2012-05-08 09:49:09 · 825 阅读 · 0 评论 -
Linux UDP编程
下列测试是在两台机器上(服务端和客户端),编译运行 1. # gcc client.c -o client client.c: 在函数‘main’中: client.c:12: 错误:‘dest_addr’的存储大小未知 解决方案: # gcc -E client.c | grep "struct sockaddr_in" struct sockaddr_in dest_ad原创 2012-05-07 17:01:54 · 5044 阅读 · 4 评论 -
Linux 网络编程故障分析
<!-- p {margin-bottom:0.21cm} --> <!-- p {margin-bottom:0.21cm} --> 编译运行下面代码,建议客户端与服务器端运行在两台不同机器,这样利于tcpdump抓取数据包,进行分析。 //############################## server.c #include #i原创 2012-04-19 11:27:56 · 889 阅读 · 0 评论 -
Linux select 函数注意要点
<!-- p {margin-bottom:0.21cm} --> int select(int nfds, fd_set *readfds, fd_set *writefds, fd_set*exceptfds, struct timeval *timeout); voidFD_CLR(int fd, fd_set *set); int FD_IS原创 2012-04-26 17:16:03 · 512 阅读 · 0 评论 -
read , scanf , fgets 标准输入键盘输入区别
#include #define MAXSIZE 10 int main() { char buf[MAXSIZE], patten[MAXSIZE]; int n; fgets(buf,MAXSIZE,stdin); //size MAXSIZE-1 if((n = read(0,buf,MAXSIZE-原创 2012-04-11 16:53:37 · 613 阅读 · 0 评论 -
孤儿进程
什么是孤儿进程, #############abcd.c################ #include int main() { while(1) sleep(1); } gcc abcd.c -o abcd ###############orph.c################### #include int mai原创 2012-04-10 13:42:33 · 384 阅读 · 0 评论 -
我的简单shell
理解background process(后台进程),fork ,exec, signal,编写myshell #include #include #include #include #define MAXSIZE 128 void reap_child( int signo) { int status; while(waitpid(-原创 2012-04-10 13:59:10 · 216 阅读 · 0 评论 -
分析EOF究竟是什么,
EOF仅仅是一种状态或者说条件,需要触发。read调用遇到文件结尾,触发该条件,结果将返回0。针对EOF,对于标准输入设备,普通文件,管道文件,网络套接字文件是read如何触发呢?下面程序将说明: server.c 是socket套接字服务端,目的为了网络套接字文件是read如何触发测试用的。 ###########################server.c#############原创 2012-04-06 17:49:17 · 2077 阅读 · 0 评论 -
Linux线程与信号
#include #include #include sigset_t set; void * do_signal(void *signo) { int sig; while(1) { sigwait(&set,&sig); fprintf(stderr,原创 2012-04-05 17:20:27 · 328 阅读 · 0 评论 -
char *strerror(int errnum) 和 errno
想探究一下char *strerror(int errnum) 和 errno实现与原理,所以匆匆自己编写一个: #include #define EONE 0 #define ETWO 1 #define EINV 2 //emulate errno int error; struct s_error { int n_err; co原创 2012-04-05 16:32:52 · 367 阅读 · 0 评论 -
建议锁与命令锁
强制锁与建议锁概念,这里就不描述了,可以查相关资料。 强制锁要生效经过必要三步: 1.允许文件系统强制锁生效。(默认不生效) 2.对于文件系统上需加锁文件,改变其组的权限(取消组中可执行权限,增加设置组id)。 3.对于文件系统上需加锁文件,进行加锁。 下面是测试程序: #include #include #include #include #include #原创 2012-04-05 16:15:44 · 337 阅读 · 0 评论 -
自己动手写代理服务器
标题很诱人,概念很大,实际上学习一下Linux网络编程相关知识,本程序《深入理解计算机系统》web proxy实验。 1)代理概念或者工作原理 代理服务器是介于客户端和Web服务器之间的另一台服务器,有了它之后,浏览器不是直接到Web服务器去取回网页而是向代理服务器发出请求,信号会先送到代理服务器,由代理服务器来取回浏览器所需要的信息并传送给你的浏览器。 2)运行代理服务器 选择一原创 2012-05-30 16:41:52 · 1432 阅读 · 1 评论