apue专题提供apue的最新资讯内容,帮你更好的了解apue。
您好,关于《 APUE》中信号10.11的来源 - || 我读了《 APUE》,发现10.11的示例无法创建正确的答案。 10.11文件是: static void sig_quit( int ); int main( void ) { sigset_t newmask, oldmas...
写在最前面:其实这是一个上课作业,我觉得我不能就这么简单的实现了而不给后人留下点什么糟粕。所以下面有兴趣的同学就跟着我误入歧途吧。我没想按着APUE这本书一章一章来,我认为既然是我自己读完了这本书并要实现东西,就需要有我自己的节奏,这种节奏不仅仅让我自己,也要让各位看客感到轻松,并偶有所获~我就十分开心了。 Preface 这学期报了一门课叫《Unix环境高级编程》,本来打算水水过去的,没想到老师
Preface 上一篇我们实现了一个最简单的shell,并且这个shell只是去执行了bash的指令,那么我们如果要去实现所有的命令需要怎么做呢?比如ls。 首先,我们就应该想到解析参数,因为只要解析了参数我们就能调用exec函数去执行命令了。 一般来讲, int mian(argc,**argv) 这是最常见的传入命令行参数的方式,那么问题来了,argv是怎么样从string解析出来的呢?需要考
整体上和unpv差不多,参见我的另一篇博文unpv13e 1.源码下载 最简单的方式:(wget工具实在太好用) wget http://www.apuebook.com/src.3e.tar.gz 2.解压查看目录结构 sunxiaowu@sunxiaowu:~/Downloads/apue/apue.3e$ dir advio figlinks lib
照着unix环境高级编程敲书上例子代码,发现gcc提示缺少apue.h,函数err_sys没定义。去上查了一下,发现原来apue.h是作者自己定义的头文件需要加上。 从网站上下载源码,把apue.h复制到  /usr/include下。当然这个需要root权限。 err_sys这个在error.c文件中定义。我们编译代码的时候把这个带上就可以了。 源码下载地址:http://www.apueboo
shell 输入输出重定向 command > file 将输出重定向到file command < file 将输入重定向到file command >> file 将输出以追加的形式重定向到file n > file 将文件描述符n重定向到file n >> file 将文件描述符n以追加的形式重定向到file n >& m 将输出m和文件n合并 n <& m 将输入n和文件m合并 << ta
/**************************************************** 包含头文件: #include <sys/stat.h> 结构体 struct stat { mode_t st_mode; // 文件模式及类型 ino_t st_ino; //inode节点号 dev_t st_dev; //设备号 dev_t st_rdev; //特殊设
/***************************************** 包含头文件: #include <stdio.h> #include <wchar.h> 函数原型: int fwide(FILE *fp,int mode); 函数说明: 设置流的定向 注: 若mode为正值,则流试图被设置为宽定向,若mode是负值,则流试图被设置为字节定向,若mode为0,不试图
vi 1.0.c #include <stdio.h> #include <stdlib.h> #include <sys/stat.h> #include <time.h> #define BUF 100 void print_time(time_t ct,char* s) { char st[BUF]; printf("%s: ",s); strftime(st,B
一:口令文件的操作 /***************************************** struct passwd成员: struct passwd { char* pw_name; // 用户名 char* pw_passwd; //加密口令 uid_t pw_uid; //数值用户ID gid_t pw_gid; // 数值组ID char* pw_gecos; /
一: 进程终止 /********************************************************* 退出函数: 包含头文件: #include <stdlib.h> 函数原型: void exit(int status); void _Exit(int status); 包含头文件: #include <unistd.h> 函数原型: voi
/********************************************************** 包含头文件: #include <unistd.h> 函数原型: pid_t getpid(void); pid_t getppid(void); uid_t getuid(void); uid_t geteuid(void); gid_t getgid(voi
1.进程组 /********************************************************* 包含头文件: #include <unistd.h> 函数原型: pid_t getpgrp(void); 函数说明: 同一进程组中的各进程接收来自同一终端的各种信号,每个进程组有一个唯一的进程组ID. 返回值: 调用进程的进程组ID *********
1.信号 /***************************************** 信号处理方式: (1):忽略此信号。(SIGKILL 和 SIGSTOP信号不能被忽略) (2):捕捉信号 (3):执行系统默认动作 *****************************************/ /****************************************
1.线程标识 /***************************************** 包含头文件: #include <pthread.h> 函数原型: int pthread_equal(pthread_t tid1,pthread_t tid2); 函数说明: 判断线程ID是否相等 返回值:若相等,返回非0数值,否则,返回0 ***********************
1.线程属性 /***************************************** 包含头文件: #include <pthread.h> 函数原型: int pthread_attr_init(pthread_attr_t *attr); int pthread_attr_destroy(pthread_attr_t * attr); 函数说明:pthread_attr_i
UNIX简介 操作系统的狭义定义,是将操作系统定义为一种控制计算机资源,提供程序运行环境的软件,通常我们称之为内核,内核提供接口供上层应用调用,也叫做System Call(系统调用)。同时,为了方便应用程序使用内核,通常都会有公用函数库,应用程序既可以使用系统调用,也可以使用公用函数库。系统调用和公用函数库实际上并不是同一个东西,但是对于开发者来说,可以当作同一个层,都可以使用C函数来调用。再向
本文记录在阅读《UNIX环境高级编程》第三版过程中发现的错误,写这篇文章时阅读到第三章文件I/0. 本书是被誉为UNIX编程“圣经”的Advanced Programming in the UNIX Environment一书的更新版。在本书第1版出版后的十几年中,UNIX行业已经有了巨大的变化,特别是影响UNIX编程接口的有关标准变化很大。本书在保持了前一版风格的基础上,根据最新的标准对内容进行
这一章的阅读相对枯燥,20世纪80年代UNIX版本种类剧增以及他们之间的差别的扩大,导致很多用户呼吁对其进行标准化。 UNIX标准化介绍了ISO C IEEE POSIX Single UNIX Specification FIPS,这部分内容不详细总结。 UNIX系统实现介绍了 SVR4 4.4BSD Free BSD Linux Mac OSX Solaris. UNIX系统中的“限制”,主要
在看《UNIX高级环境编程》这本书的时候,会遇到一个问题就是这个”apue.h”,这个是作者为了编写代码方便封装了一个库,我们可以使用下面的方式解决这个问题,让我们的代码可以像作者一样去使用,这样的话,我们就可以好好研究一下作者的代码了 首先进入到目录/usr/local/src/ 然后下面我们的压缩文件,这里是网址http://www.apuebook.com/src.3e.tar.gz 在ce