您好,关于《 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