
Unix高级环境编程
文章平均质量分 78
MarchOrHome
这个作者很懒,什么都没留下…
展开
-
第五章 标准I/O库
1. fwide函数 用于设置流的定向。 int fwide(FILE *fp, int mode); //若流是宽定向,返回正值;是字节定向,返回负值;是未定向,返回0。 如若mode是负值,则函数试图使指定的流是字节定向的;如果mode是正值,则函数试图使制定的流是宽定向的;若mode参数值为0,函数不试图设置流的定向,返回标识流定向的值。2. 缓冲 全缓原创 2016-06-29 20:28:28 · 377 阅读 · 0 评论 -
第四章:文件和目录
1.函数stat,fstat,lstat,fststat2.文件类型: 普通文件,目录文件,块特殊文件,字符特殊文件(系统中的设备属于这两种),FIFO,套接字,符号链接。 代码是查看文件类型。#include "apue.h"int main(int argc, char *argv[]){ int i; struct原创 2016-06-25 14:25:59 · 339 阅读 · 0 评论 -
2.懵懵懂懂的第一章和第三章
刚刚开始看unix高级环境编程,看了一天,好像什么都懂,但是更像什么都不懂,先记一记,说不定下次再看的时候,会有新的感悟。 1.目录的一些操作 opendir,返回一个DIR结构的指针,将指针传入readdir函数,会读取里面的目录,直到里面的目录都被读取完。#include "apue.h"#include int main(int argc, char *arg原创 2016-06-21 21:21:17 · 309 阅读 · 0 评论 -
第八章 进程控制
1. 进程标识符 pid_t getpid(void); //返回调用进程的进程ID pid_t getppid(void); //返回调用进程的父进程ID uid_t getuid(void); //返回调用进程的实际用户ID uid_t geteuid(void); //返回调用进程的有效用户ID gid_t getgid(void); //返回进程的实原创 2016-07-08 16:52:13 · 317 阅读 · 0 评论 -
第17章 高级进程间通信
1. UNIX域套接字 用于同一台计算机上运行的进程之间的通信。提供流和数据报两种接口,UNIX域数据报服务是可靠的。 int socketpair(int domain, int type, int protocol, int sockfd[2]); //创建一对无命名的,相互连接的UNIX域套接字 //借助UNIX域套接字轮询XSI消息队列#include "apue原创 2016-07-28 11:24:30 · 239 阅读 · 0 评论 -
1.UNIX环境高级编程学习环境搭建---apue.h,unix---apue.h
本菜刚刚学习UNIX下高级编程,无奈搭建本书编程环境时遇到不少问题。幸好网上有各种大神的解决办法让我最终解决了问题。在这里感谢为LINUX开源操作系统奋斗的大神。不过话说回来,网上大都是针对UNIX高级编程第二版的头文件搭建,现在对于第三版来说,有些过时,因为很对针对linux的make文件已经改变了很多。话不多说,下面就来看看具体的搭建过程:(本人用的操作系统是ubuntu 14转载 2016-06-21 10:42:15 · 318 阅读 · 0 评论 -
第十三章 守护进程
1. 编程规则 i. 调用umask将文件模式创建屏蔽字设置为一个已知值; ii. 调用fork,然后使父进程exit; iii. 调用setsid创建一个新会话; iX. 将当前工作目录更改为根目录; X. 关闭不需要的文件描述符; Xi. 某些守护进程打开/dev/null使其具有文件描述符0,1,2,这样,任何一个试图读标准输入,写标准输出或标准错误的库例原创 2016-07-17 12:09:14 · 232 阅读 · 0 评论 -
第十二章 线程控制
1. 线程属性 int pthread_attr_init(pthread_attr_t *attr); int pthread_attr_destroy(pthread_attr_t *attr); int pthread_attr_getdetachstate(const pthread_attr_t *restrict attr, int *detachstate)原创 2016-07-16 16:21:02 · 280 阅读 · 0 评论 -
第十六章 网络IPC:套接字
1. 套接字描述符 套接字是通信端点的抽象。 int socket(int domain, int type, int protocol); //创建一个套接字,返回套接字的描述符 //domain确定通信的特性,type确定套接字的类型,protocol代表通信协议 int shutdown(int sockfd, int how); //套接字的通信是双向的,它用来禁止原创 2016-07-26 17:32:38 · 303 阅读 · 0 评论 -
第十一章 线程
1. 线程标识 int pthread_equal(pthread_t tid1, pthread_t tid2); //线程ID相等的话,返回非0;否则返回0。 pthread_t pthread_self(void); //返回调用线程的线程ID2. 线程创建 int pthread_create(pthread_t *restrict tidp, const p原创 2016-07-14 21:44:09 · 266 阅读 · 0 评论 -
第六章 系统数据文件和信息
1. 口令文件 获取口令文件项的函数: struct passwd *getwuid(uid_t uid); struct passwd *getpwnam(const char *name);原创 2016-07-01 16:48:17 · 287 阅读 · 0 评论 -
第十章 信号
1. 函数signal void (*signal(int signo, void(*func)(int)))(int); func是常量SIG_IGN时,向内核表示忽略此信号,SIGKILL和SIGSTOP不能忽略;是常量SIG_DFL,表示借到此信号后的动作是系统默认动作;是函数地址时,代表信号处理程序或信号捕捉函数。#include "apue.h"static void原创 2016-07-12 16:28:08 · 241 阅读 · 0 评论 -
第十五章 IPC
1. 管道 局限性:历史上,它们是半双工;管道只能在具有公共祖先的两个进程间使用。 int pipe(int fd[2]); //创建管道 fd[0]为读而打开,fd[1]为写而打开;fd[1]的输出是fd[0]的输入。 i. 当读一个写端已被关闭的管道时,在所有数据都被读取后,read返回0,表示文件结束 ii. 当写一个读端已被关闭的管道时,则产生信号SIGPIP原创 2016-07-21 16:32:34 · 701 阅读 · 0 评论