
apue
文章平均质量分 59
zhangtufei
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
apue第三版P106:ftw程序中使用的path_alloc
以前看apue时一直用c艹写书中的代码,没有用过apue.h,所以没发现问题 看了一下path_alloc的代码,是用malloc分配内存 (c艹实现时直接string+string) 纵观整个代码没有发现free????? 网上搜了一下也没人说过这个问题 static char * fullpath,定义的全局变量,那么在main中 ret=myftw(argv[1],myfunc)原创 2015-07-16 07:40:14 · 430 阅读 · 0 评论 -
apue-第十章 信号 笔记
CTRL+c SIGINT 终止 CTRL+z SIGTSTP 停止进程 SIGCONT 让进程后台继续运行,若改为前台运行,需要waitpid 终端KILL指令: kill -s pid 将信号s发送至有pid指定进程 kill -l 可看到所有signal的编号(s的取值) exec函数族: 关闭设置了执行时关闭标志的文件描述符 将所有原先要捕捉的信号都原创 2015-07-28 18:04:36 · 486 阅读 · 0 评论 -
apue 第十二章 线程控制
线程属性: pthread_attr_init(phtread_attr_t *attr)初始化 pthread_attr_destroy detachstate:线程的分离状态 pthread_attr_getdetachstate(const pthread_attr_t *restrict attr,int *detachstate)获取attr中的分离状态属性 参数det原创 2015-07-30 02:17:06 · 595 阅读 · 0 评论 -
apue 第14章 高级I/O
记录锁: fcntl(int fd,int cmd,struct flock *flockptr) cmd:F_GETLK F_SETLK 非阻塞,失败时会立即返回,并设置errno为EACCES EAGAIN F_SETLKW 阻塞式,会在可加锁时返回或者由信号中断 记录锁的继承和释放: 1、进程终止时,释放所有锁 2、进程对文件F设置了锁,那么该进程中任何一个打开了文件F的文原创 2015-07-31 23:26:57 · 404 阅读 · 0 评论 -
apue 第十三章 守护进程
守护进程的编程规则: 总体来说:没有控制终端(不会接收到使守护进程终止的信号),那么就要调用setsid使进程成为会话首进程,调用setsid的前提条件是该进程不是进程组组长,因此先fork一次,让父进程退出,子进程继续干活 1、调用umask将(继承而来的)创建文件屏蔽字设为一个已知值 2、fork,留下子进程,调用setsid。子进程成为孤儿进程,以及会话首进程 3、为了防止再次关联终原创 2015-07-31 14:47:07 · 457 阅读 · 0 评论 -
apue 第十五章 进程间通信
管道 int pipe(int fd[2]); fd[0]是读端 fd[1]是写端 读一个写端已经关闭的pipe时read返回0 写一个读端已经关闭的pipe时产生信号SIGPIPE,如果该信号被忽略或者被捕捉从信号处理函数中返回时,wirite返回-1,errno设置为EPIPE FILE *popen(const char *cmdstring,const char *typ原创 2015-08-02 14:28:51 · 398 阅读 · 0 评论 -
apue 第十六章 套接字
int socket(int domain,int type, int protocal) 返回套接字的文件描述符 domain是套接字的通信域,每个域都有不同的地址格式 AF_INET AF_INET6 AF_UNIX AF_UPSEC AF address family 地址族 type是套接字类型 SOCK_DGRAM 数据报 SOCK_STREAM 字节流 protoc原创 2015-08-03 12:06:50 · 311 阅读 · 0 评论 -
apue 第十七章 高级进程间通信
UNIX域套接字 socketpair(int domain,int type,int protocol,int sockfd[2]) 创建一对无命名相互连接的UNIX域套接字 实现管道pipe(int fd[2]):socketpair(AF_UNIX,SOCK_STREAM,0,fd);原创 2015-08-04 17:52:07 · 575 阅读 · 0 评论 -
apue 第十一章 线程
pthread_join(pthread_t tid,void **rval_ptr) old线程创建了new线程,然后调用pthread_join来等待new线程返回,返回值为*rval_ptr apue中提到一个线程的分离状态概念: 类比于进程,子进程在退出中,会保留退出状态供父进程调用wait/waitpid获取 对于线程,P318:默认情况下,线程的终止状态会保存知道对该线程调用p原创 2015-07-29 16:01:48 · 446 阅读 · 0 评论