![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
APUE
hustyangju
这个作者很懒,什么都没留下…
展开
-
UNIX 文件I/O总结
输入是从I/O设备拷贝数据到主存,输出是从主存拷贝数据到I/O设备。一个文件就是一个字节序列。所有的I/O设备,如网络、磁盘、和终端,都被模型化为文件,而所有的输入和输出都被当做想对应的文件的读写来执行。1、ISO C的I/O操作是带缓存的,而POSIX标准的I/O操作是指真正发生了系统调用,是不带缓存的2、文件描述(1)是对一个已打开文件的引用,是由shell原创 2015-05-08 09:43:26 · 854 阅读 · 0 评论 -
《UNIX环境高级编程》 更改用户ID组ID
UNIX系统为了总是以最小特权去执行一个程序,给出了setuid和setgid函数原型如下:#includeint setuid(uid_t uid);int setgid(gid_t gid);用户ID和组ID的更改规则是相通的,大家可以举一反三,下面写的都是关于用户ID的,组ID一样的原理。一个进程有自己的 实际用户转载 2015-05-19 10:15:44 · 557 阅读 · 0 评论 -
条件变量与虚假唤醒
1. 相关函数 #include pthread_cond_t cond = PTHREAD_COND_INITIALIZER; int pthread_cond_i转载 2015-06-23 15:58:10 · 2440 阅读 · 0 评论 -
pthread_once()函数详解
在多线程环境中,有些事仅需要执行一次。通常当初始化应用程序时,可以比较容易地将其放在main函数中。但当你写一个库时,就不能在main里面初始化了,你可以用静态初始化,但使用一次初始化(pthread_once)会比较容易些。int pthread_once(pthread_once_t *once_control, void (*init_routine) (void));功能:转载 2015-06-23 17:05:56 · 6564 阅读 · 0 评论 -
Linux内存管理(最透彻的一篇)
摘要:本章首先以应用程序开发者的角度审视Linux的进程内存管理,在此基础上逐步深入到内核中讨论系统物理内存管理和内核内存的使用方法。力求从外到内、水到渠成地引导网友分析Linux的内存管理与使用。在本章最后,我们给出一个内存映射的实例,帮助网友们理解内核内存管理与用户内存管理之间的关系,希望大家最终能驾驭Linux内存管理。前言内存管理一向是所有操作系统书籍不惜笔墨重点讨论的内容,无论市转载 2015-06-02 15:24:31 · 43883 阅读 · 11 评论 -
APUE: Ext2文件系统布局,文件数据块寻址,VFS虚拟文件系统
注:本分类下文章大多整理自《深入分析linux内核源代码》一书,另有参考其他一些资料如《linux内核完全剖析》、《linux c 编程一站式学习》等,只是为了更好地理清系统编程和网络编程中的一些概念性问题,并没有深入地阅读分析源码,我也是草草翻过这本书,请有兴趣的朋友自己参考相关资料。此书出版较早,分析的版本为2.4.16,故出现的一些概念可能跟最新版本内核不同。此书已经开源,阅读地址转载 2015-06-02 10:21:50 · 591 阅读 · 0 评论 -
APUE 进程环境
进程的基本环境1、main主函数原型int main( int argc, char *argv[]);在exec函数执行main函数前,先调用一个特殊的启动例程,改启动例程为程序的起始地址,目的是为了从内核获取进程的命令行参数和环境变量2、进程的终止终止进程的方法有好多种,常用的有(1)从main返回return 其实是调用exit函数。exit函数执行标准I原创 2015-05-18 10:28:27 · 802 阅读 · 0 评论 -
【Unix】文件IO与标准IO
转自:http://blog.csdn.net/guansir/article/details/5301443一、文件IO大多数UNIX文件IO只需用到5个函数:open、read、write、lseek以及close。这些函数经常被称为不带缓存的IO(unbuffered IO),不带缓存是指每个read和write都调用内核中的一个系统调用。这些不带缓存的IO函转载 2015-05-11 09:56:06 · 816 阅读 · 0 评论 -
Unix 系统数据文件和信息
转自:http://blog.csdn.net/litingli/article/details/5035047第六章 系统数据文件和信息系统正常运行需要使用大量系统数据文件,其中,所有UNIX系统都有的是:口令文件、组文件,大多数系统都提供的是:登录账户记录、系统标识、时间和日期例程,同时还有其他一些常用系统数据文件如:BSD网络软件有一个记录各网络服务器所提供服务的数据文件(/etc/转载 2015-05-11 11:05:19 · 928 阅读 · 0 评论 -
Unix 标准I/O总结和与文件I/O的比较
我们可以将文件I/O视为系统调用,内核要执行I/O操作,这里涉及到页缓存(高速缓存区)的概念,文件I/O执不执行与缓存区有关。而标准I/O是对系统I/O调用的封装,标准I/O也有缓存区、行缓存的概念。正是由于这二级的缓存模式。导致标准I/O的效率很低。当打开一个流时,标准I/O函数fopen返回一个指向FILE对象的指针。该对象通常是一个结构,它包含了标准I/O库为管理该流所需的所有信息,原创 2015-05-11 09:54:39 · 1331 阅读 · 0 评论 -
Unix文件系统基本结构
UNIX文件系统是UNIX系统的心脏部分,提供了层次结构的目录和文件。文件系统将磁盘空间划分为每1024个字节一组,称为块(block)(也有用512字节为一块的,如:SCO XENIX)。编号从0到整个磁盘的最大块数。 一个磁盘分成一个或多个分区,每个分区可以包含一个文件系统一个分区分为三部分:+ 超级块, 文件系统中第一块被称为超级块。这个块存放文件系统本身的结构信息,比如转载 2015-05-08 15:38:51 · 4060 阅读 · 0 评论 -
Unix环境高级编程--进程控制
进程标识符要想对进程控制,必须得获取进程的标识。每个进程都有一个非负整数表示的唯一进程ID,虽然是唯一的,但是进程ID可以重用。当一个进程终止后,其进程ID就可以再次使用了。系统中有一些专用的进程。ID为0的进程通常是调度进程(常常被称为交换进程swapper)。该进程是内核的一部分,它不执行任何磁盘上的程序。进程ID1通常是init进程。此进程负责在自举内核后启动一个转载 2015-05-19 10:28:39 · 585 阅读 · 0 评论