Unix高级环境编程
pmt123456
这个作者很懒,什么都没留下…
展开
-
实现dup2函数(不使用fcntl)
dup(int fd)dup返回的新文件描述符一定是当前可用文件描述符中的最小数值dup2(int fd,int fd2)dup2,可以用fd2指定新描述符的值。如果fd2已经打开,则先将其关闭;如果fd==fd2,则dup2返回fd2,而不关闭它;否则,fd2 的 exec_on_close被关闭。#include#include#incl原创 2016-09-29 15:04:01 · 785 阅读 · 0 评论 -
SUID,SGID原理
鸟哥在书中曾提到SUID,SGID特殊权限 每个文件由一个所有者和组所有者,所有者由sturcit stat中的st_uid指定,组所有者由st_gid指定。 通常,当执行一个程序文件时,有效用户ID=实际用户ID,有效组ID=实际组ID。但可以在文件模式位(st_mode)中设置一个特殊标志,其含义是“当执行此文件时,将进程的有效用户I原创 2016-09-29 15:32:28 · 650 阅读 · 0 评论 -
_exit和exit的区别
在Linux的标准库函数中,有一套称作高级I/O的函数,我们熟知的printf 、fopen 、fread 、fwrite都在此列,他们也被称作缓冲I/O。其特征是对应每一个打开的文件,都存在一个缓冲区, 在内存中都有一片缓冲区,每次读文件会多读若干条记录,这样下次读文件时就可以直接从内存的缓存中取出,每次写文件时也仅仅是写入到内存的缓冲区,等待满足一定的条件(达到一定的数量,或者遇到特定字符,如转载 2016-12-12 10:03:34 · 198 阅读 · 0 评论 -
SIGINT、SIGQUIT、 SIGTERM、SIGSTOP区别
2) SIGINT程序终止(interrupt)信号, 在用户键入INTR字符(通常是Ctrl-C)时发出,用于通知前台进程组终止进程。3) SIGQUIT和SIGINT类似, 但由QUIT字符(通常是Ctrl-\)来控制. 进程在因收到SIGQUIT退出时会产生core文件, 在这个意义上类似于一个程序错误信号。15) SIGTERM程序结束(terminat转载 2016-12-09 21:22:20 · 48508 阅读 · 1 评论 -
APUE习题10.6(父子进程同步)
编写一段程序测试图10_24中父子进程的同步函数,要求进程创建一个文件并向文件写一个整数0,然后进程调用fork,接着父子进程交替增加文件中的计数器值,每次计数器值增加1,打印是哪一个进程进行来该增加1操作没有完全按照题目要求做,直接fork之后01234这样打印的先上一个标准输出的实现1、写到标准输出的实现main.c:以下实现是有问题的问题在于:子进原创 2016-12-14 13:36:51 · 1693 阅读 · 0 评论 -
守护进程的创建方法和步骤
守护进程(Daemon)是运行在后台的一种特殊进程。守护进程(Daemon)是一种运行在后台的一种特殊的进程,它独立于控制终端并且周期性的执行某种任务或等待处理某些发生的事件。由于在Linux中,每个系统与用户进行交流的界面成为终端,每一个从此终端开始运行的进程都会依附于这个终端,这个终端被称为这些进程的控制终端,当控制终端被关闭的时候,相应的进程都会自动关闭。但是守护进程却能突破这种限制,它脱离转载 2017-03-11 15:44:33 · 1076 阅读 · 0 评论 -
Linux五种IO模型
转自 http://blog.csdn.net/jay900323/article/details/18141217/1. 概念理解 在进行网络编程时,我们常常见到同步(Sync)/异步(Async),阻塞(Block)/非阻塞(Unblock)四种调用方式:同步: 所谓同步,就是在发出一个功能调用时,在没有得到结果之前,该转载 2017-02-23 00:34:43 · 859 阅读 · 0 评论 -
会话、前台进程组、后台进程组、孤儿进程等相关概念
终端登录:当系统自举时,内核创建ID为1的进程,也就是init进程,init进程系统进入多用户状态。init进程读取/etc/inittab,对每一个允许登录的终端设备,init调用一次fork,它所生成的子进程执行(exec)getty程序。getty为终端设备调用open函数,如果没有请求则阻塞,如果有请求,则文件描述符0,1,2就设置到该设备,然后getty输出”login“转载 2017-03-11 16:01:55 · 1116 阅读 · 0 评论