03 2016 档案
linux第13天 生产者与消费者
摘要:pthread_cond_t my_condition = PTHREAD_COND_INITIALIZER; pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER; // 互斥锁和条件等待 解决生产者和消费者模型 条件等待模型//socket连接池。。
阅读全文
linux第12天 线程
摘要:今天主要学习了共享内存,信号量的封装,还有线程. POSIX线程库 与线程有关的函数构成了一个完整的系列,绝大多数函数的名字都是以“pthread_”打头的 要使用这些函数库,要通过引入头文<pthread.h> 链接这些线程函数库时要使用编译器命令的“-lpthread”选项 pthr
阅读全文
linux第11天 共享内存和信号量
摘要:今天主要学习了共享内存和信号量 在此之前,有个管道问题 ls | grep a 整句话的意思是将ls输出到管道的写端,而流通到另一端的读端,grep a则是从管道的读端读取相关数据,再做筛选 共享内存 int shmget(key_t key, size_t size, int flag); key
阅读全文
关于select函数中timeval和fd_set重新设置的问题(转的,博主写得相当经典)
摘要:select原型: int select(int n, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, struct timeval *timeout); 和select模型紧密结合的四个宏: FD_CLR(int fd, fd_set *
阅读全文
posted @ 2016-03-11 16:59
指尖上的快乐
linux第10天 msg消息队列
摘要:cat /proc/sys/kernel/msgmax最大消息长度限制 cat /proc/sys/kernel/msgmnb消息队列总的字节数 cat /proc/sys/kernel/msgmni消息条目数 消息队列综合案例
阅读全文
linux第9天 UDP
摘要:今天学了一点UDP知识,还是IP协议.都不是重点,重点是socket服务器框架 不过还是把今天学的东西,先罗列出来,将来复习的时候方便 <!--[if !supportLists]-->q <!--[endif]-->UDP报文可能会丢失、重复 <!--[if !supportLists]-->q
阅读全文
linux第8天 connect强化
摘要:今天没有系统学习什么新知识,就是把以前学到的知识复习了一下,其中有几点值得注意 connect(fd, (struct sockaddr *)addr, sizeof(struct sockaddr_in)); 当fd处于非阻塞时, 如果connect没有成功连接,将返回-1,errno将指定于EI
阅读全文
关于非阻塞connect的若干细节性问题
摘要:我们用man connection命令查看手册,如下: EINPROGRESS The socket is nonblocking and the connection cannot be completed immediately. It is possible to select(2) or p
阅读全文
linux第7天 I/O的五种模型, select
摘要:服务器端避免僵尸进程的方法: 1)通过忽略SIGCHLD信号,解决僵尸进程 signal(SIGCHLD, SIG_IGN) 2)通过wait方法,解决僵尸进程 signal(SIGCHLD, handle_sigchld); wait(NULL) 3)通过waitpid方法,解决僵尸进程 sign
阅读全文
linux第6天 流协议-粘包
摘要:今天学习的主要是对第5天的加强. 比如服务器的多进程,点对点应用聊天程序.父进程子进程互发消息.等等. 流协议-粘包 一般TCP协议会出现粘包,粘包产生的原因一般为.TCP协议是流式传输,不会根据用户传输数据的大小进行截断, 所以用户数据的传输很可能被TCP截断,所以就有了一种对数据包的再包装. 思
阅读全文
对while((pid = waitpid(-1, &stat, WNOHANG)) > 0)不懂的地方,现在懂了
摘要:while((pid = waitpid(-1, &stat, WNOHANG)) > 0) 需要写到信号处理函数中,假如有10个子进程 只要父进程能够收到最后一个信号,就能把前面丢失的所产生的僵尸进程回收完. 而父进程是能够收到最后一个信号的,就算父进程在子进程结束到第5个的时候,开始进行信号函数
阅读全文
fork子进程之间传输信息的方法(包含子进程与子进程之间区分的问题的解决)
摘要:今天看到一道题,要求是父进程fork出两个子进程,子进程1需要给子进程2发送一个数据,然后子进程2再将这个数据发送给父进程 具体思想如下. 父进程fork出来的子进程的pid,只有父进程保存下来了, 子进程1可以获取到父进程的pid,子进程2可以获取到子进程1的pid,但是子进程1得不到子进程2的p
阅读全文
linux第5天 socket api
摘要:IPv4套接口地址结构通常也称为“网际套接字地址结构”,它以“sockaddr_in”命名,定义在头文件<netinet/in.h>中 通用地址结构用来指定与套接字关联的地址。以sockaddr命名 我们进行TCP编程的时候,通常是用sockaddr_in,但提供的API函数是通用地址结构,所以,传
阅读全文
linux第4天 shell socket
摘要:$[ ] 表示形式告诉shell对方括号中的表达式求值 echo $[3+9] 赋值运算符 =,+=,-=,*=,/=,%=,&=,^=、|=,<<=,>>= let count = $count + $change let count += $change cat longfile |more使用
阅读全文
linux环境变量与本地变量
摘要:两者不同的是. 环境变量可以在shell的子进程中使用, 而本地变量不同. 每当连接上服务器时,服务器就会通过帐号密码运行一个SHELL,我们所做的工作都在这个SHELL上,特殊方法除外(如,守护进程) 我们在SHELL所敲击的命令,实质上都是shell的子进程.环境变量就可以在子进程中访问.而本地
阅读全文
linux第2天 信号 wait
摘要:孤儿进程和僵尸进程 如果父进程先退出,子进程还没退出那么子进程的父进程将变为init进程。(注:任何一个进程都必须有父进程) 如果子进程先退出,父进程还没退出,那么子进程必须等到父进程捕获到了子进程的退出状态才真正结束,否则这个时候子进程就成为僵进程。 孤儿进程 如果父亲进程先结束,子进程会托孤给1
阅读全文
浙公网安备 33010602011771号