UNIX编程专题
五癫
武汉理工大学软件工程
展开
-
UNIX编程专题-可重入函数和不可重入函数
1.什么是可重入函数2.原创 2017-07-11 09:54:55 · 361 阅读 · 0 评论 -
unix编程专题-信号机制使用实例
1.异步事件通信(甚至可以附带信息数据)(额,由于无线网卡掉了,电脑切换到ubuntu的情况下无法联网,暂时不自己写一个了)暂且用文字说明:其实子进程结束,内核产生SIGCHLD并递送给父进程,就是一个典型的异步事件通信2.保护临界区不被信号中断以下摘自unix高级环境编程#include "apue.h"static void sig_int(int);原创 2017-07-13 12:12:06 · 253 阅读 · 0 评论 -
UNIX编程专题-wait和waitpid详解2
1.wait和waitpid详解 参考我转载的一篇文章:点击打开链接2.wait和waitpid的关系调用wait会产生一些问题。因为unix信号大多数是不排队的,当某个不可靠信号几乎同时(间隔极小))由内核产生,想让进程处理时,具体调用了信号处理函数多少次很难预料,为了防止上述情况,我们应采用waitpid,设置为非阻塞状态,while循环void sig_chld(i原创 2017-07-14 12:07:03 · 273 阅读 · 0 评论 -
UNIX编程专题-描述符集介绍和相关操作
1.什么是描述符集内核(kernel)利用文件描述符(file descriptor)来访问文件。文件描述符是非负整数。打开现存文件或新建文件时,内核会返回一个文件描述符。读写文件也需要使用文件描述符来指定待读写的文件。而文件描述符集就是文件描述符的集合。2.类UNIX系统描述符集的表示形式一般用整数数组来表示,其中每个整数中的每一位对应一个描述符。比如数组元素是整数类型,则该数组原创 2017-07-16 13:02:06 · 412 阅读 · 0 评论 -
UNIX编程专题-TCP连接探测详解
此问题在面试中经常出现方案1:设置SO_KEEPALIVE套接字选项给一个TCP套接字设置保持存活选项。如果keepalivetime小时内在该套接字的任意方向都没有数据的交换,则TCP就自动给对端发送一个保持存活探测分节(keep-alive probe)。这是一个对端必须响应的TCP分节,导致三种情况对端以期望的TCP分节。应用进程没有任何反应(因为正常,所以默认没有反应)。又原创 2017-07-16 15:57:34 · 603 阅读 · 0 评论 -
Linux IO模式及 select、poll、epoll详解
此文章转载自https://segmentfault.com/a/1190000003063859注:本文是对众多博客的学习和总结,可能存在理解错误。请带着怀疑的眼光,同时如果有错误希望能指出。同步IO和异步IO,阻塞IO和非阻塞IO分别是什么,到底有什么区别?不同的人在不同的上下文下给出的答案是不同的。所以先限定一下本文的上下文。本文讨论的背景是Linux环境下的ne转载 2017-07-16 16:05:36 · 321 阅读 · 0 评论 -
UNIX编程专题-I/O复用:select、pselect、poll和epoll解析
1.什么是I/O复用进程需要一种预先告知内核的能力,使得内核一旦发现进程指定的一个或多个I/O条件就绪(输入已准备好被读取,或者描述符已能承接更多的输出),就会通知进程。这个能力称为I/O复用。2.I/O复用的应用场合当客户同时处理多个描述符(通常是交互式输入和网络套接字)时,必须使用I/O复用一个客户同时处理多个套接字是可能的如果一个TCP服务器既要处理监听套接字,又要处理已连接原创 2017-07-16 16:18:55 · 2076 阅读 · 1 评论 -
UNIX编程专题-core文件的生成和调试
1.什么是core文件在unix或者类unix系统中,应用程序在运行过程中异常退出或者终止,在一定的情况下会产生一个叫做core的文件(默认可执行程序所处目录),core是一个进程的内存映像(包含了程序运行时的内存,寄存器状态,堆栈指针,内存管理信息还有各种函数调用堆栈信息等),通过分析这个文件,我们可以检查进程终止时的状态,定位程序异常退出的时候堆栈的调用等信息,找出问题所在。2.cor原创 2017-07-09 09:41:09 · 642 阅读 · 0 评论 -
为什么内核设计人员要给进程创造一种僵尸状态?
1.问题来源原创 2017-09-06 17:02:00 · 326 阅读 · 0 评论