Linux程序设计
ChrisXiaoxh
这个作者很懒,什么都没留下…
展开
-
dup and dup2的剖析
dup和dup2都可用来复制一个现存的文件描述符,使两个文件描述符指向同一个file结构体。如果两个文件描述符指向同一个file结构体,File Status Flag和读写位置只保存一份在file结构体中,并且file结构体的引用计数是2。如果两次open同一文件得到两个文件描述符,则每个描述符对应一个不同的file结构体,可以有不同的File Status Flag和读写位置。请注意区转载 2013-08-29 21:15:18 · 462 阅读 · 0 评论 -
EINTR错误
慢系统调用(slow system call):此术语适用于那些可能永远阻塞的系统调用。永远阻塞的系统调用是指调用有可能永远无法返回,多数网络支持函数都属于这一类。如:若没有客户连接到服务器上,那么服务器的accept调用就没有返回的保证。EINTR错误的产生:当阻塞于某个慢系统调用的一个进程捕获某个信号且相应信号处理函数返回时,该系统调用可能返回一个EINTR错误。例如:在socket服转载 2013-10-30 20:16:15 · 980 阅读 · 0 评论 -
UNP读书笔记--Chapter 4 Elementary TCP Sockets
n/a转载 2013-09-24 20:31:14 · 656 阅读 · 0 评论 -
UNP读书笔记--Chapter 3 Sockets Introduction
Socket Address StructureName of socket address structures begin with sockaddr_ and end with a unique suffix for each protocol suite.IPv4 Socket Address StructureIPv4 socket address structure is转载 2013-09-24 07:35:21 · 741 阅读 · 0 评论 -
C语言解析命令行参数
最近在读《LPBE》,学习了getopt函数,记录如下:#include #include #include int oc;char* b_opt_arg;int main(int argc, char** argv){ while ((oc = getopt(argc, argv, "ab:cd:")) != -1) { switch (oc) { case原创 2013-09-23 20:06:46 · 2774 阅读 · 0 评论 -
Linux信号(signal) 机制分析
【摘要】本文分析了Linux内核对于信号的实现机制和应用层的相关处理。首先介绍了软中断信号的本质及信号的两种不同分类方法尤其是不可靠信号的原理。接着分析了内核对于信号的处理流程包括信号的触发/注册/执行及注销等。最后介绍了应用层的相关处理,主要包括信号处理函数的安装、信号的发送、屏蔽阻塞等,最后给了几个简单的应用实例。【关键字】软中断信号,signal,sigaction,kill,sig转载 2013-09-17 12:25:39 · 2238 阅读 · 0 评论 -
线程处理函数pthread_cleanup_push / pthread_cleanup_pop
线程可以安排它退出时需要调用的函数,这样的函数称为线程清理处理程序,线程可以建立多个清理处理程序。处理程序记录在栈中,也就是说它们的执行顺序与它们注册时的顺序相反。pthread_cleanup_push来注册清理函数rtn,这个函数有一个参数arg。在以下三种情形之一发生时,注册的清理函数被执行:1)调用pthread_exit。2)作为对取消线程请求(pthread_cancel)转载 2013-09-13 11:14:27 · 639 阅读 · 0 评论 -
Linux 信号signal处理机制
信号是Linux编程中非常重要的部分,本文将详细介绍信号机制的基本概念、Linux对信号机制的大致实现方法、如何使用信号,以及有关信号的几个系统调用。 信号机制是进程之间相互传递消息的一种方法,信号全称为软中断信号,也有人称作软中断。从它的命名可以看出,它的实质和使用很象中断。所以,信号可以说是进程控制的一部分。一、信号的基本概念 本节先介绍信号的一些基本概念,然后给出转载 2013-09-11 16:58:30 · 593 阅读 · 0 评论 -
fcntl使用
功能描述:根据文件描述词来操作文件的特性。#include #include int fcntl(int fd, int cmd); int fcntl(int fd, int cmd, long arg); int fcntl(int fd, int cmd, struct flock *lock);[描述]fcntl()针对(文件)描述符提供控制。参数fd转载 2013-09-11 16:52:25 · 536 阅读 · 0 评论 -
Linux目录操作函数:opendir/readdir/closedir
DIR* opendir (const char * path );struct dirent* readdir(DIR* dir_handle); int closedir(DIR * dir_handle);1. opendir头文件: #include #include函数原型: DIR* open转载 2013-09-01 06:16:00 · 1977 阅读 · 0 评论 -
sigaction函数解析
sigaction函数的功能是检查或修改与指定信号相关联的处理动作(可同时两种操作)。他是POSIX的信号接口,而signal()是标准C的信号接口(如果程序必须在非POSIX系统上运行,那么就应该使用这个接口)给信号signum设置新的信号处理函数act, 同时保留该信号原有的信号处理函数oldactintsigaction(int signo,const转载 2013-10-31 18:42:05 · 619 阅读 · 0 评论