在linux中,文件的相关信息都记录在stat这个结构体中,文件长度是记录在stat的st_size成员中.对于普通文件,其长度可以为0,目录的长度一般为1024的倍数,这与linux文件系统中block的大小是有关系的,符号链接的长度是它所指向的文件名字的长度. 文件的截短可以在使用open函数时,用O_TRUNC标记,这样将会在打开文件时将文件的内容清空.linux专门为我们提供了两个函数以指定定的长度打开文件: int truncate(const char* pathname,off_t…
第13章 守护进程 13.1 引言 *守护进程也称精灵进程(daemon)是生存期较长的一种进程.它们常常在系统自举时启动,仅在系统关闭时才终止.因为它们没有控制终端,所以说它们是在后台运行的.UNIX系统有很多守护进程,它们执行日常事务活动 13.2 守护进程的特征 *系统进程依赖于操作系统实现.父进程ID为0的各进程通常是内核进程,它们作为系统自举过程的一部分而启动.(init是此种进程的例外,它是内核在自举时启动的用户层命令.)内核进程是特殊的,通常存在于系统的整个生命期中.它们以超级用户…
1. 引言 守护进程是生存期长的一种进程.它们常常在系统引导装入时启动,仅在系统关闭时才终止.它们没有控制终端,在后台运行. 本章说明守护进程结构.如何编写守护进程程序.守护进程如何报告出错情况. 2. 守护进程的特征 基于BSD的系统下执行:ps -axj -a 显示由其他用户所拥有的进程的状态:-x 显示没有控制终端的进程状态:-j 显示与作业有关的信息 基于System V的系统下执行:ps -efj Linux下执行以上两个命令输出一致 常见的守护进程: kswapd,内存换页守护进程.…
从这周开始逐渐的进入学习状态,每天晚上都会坚持写c程序,并且伴随对这本书的深入,希望能写出更高质量的读书笔记和程序. 本书的第一章,介绍了一些关于unix的基础知识,在这里我不想去讨论linux到底是不是unix或者和unix的关系是什么这样的问题,只针对对自己有价值的知识点进行分析. 第一节 登录 第一节中,作者叙述了unix下用户登录的基本过程,包括保存用户口令的文件 /etc/passwd , 以及该文件的格式,该口令文件中的登录项的组成结构为由7个冒号分隔的字符串,依次是 : 登录名 加…
第四节 输入与输出 上次的笔记中写到的 open, read, write, lseek 以及close ,都是不带缓存的IO函数,这些函数都使用文件描述符进行工作. 上一篇笔记用到的 read(STDIN_FILENO, buf, BUFFSIZE) 和 write(STDOUT_FILENO, buf, n) 函数中的2个参数 STDIN_FILENO 和 STDOUT_FILENO 是 __POSIX__标准的一部分,很多函数原型都在其中,这2个参数定义在 头文件中,他们是标准输入输出的文…
unix-like(后面以linux为例)系统中的文件操作只需要五个函数就足够了,open.close.read.write以及lseek.这些操作被称为不带缓存的io,这里有必要说一下带缓存和不带缓存的操作的区别.不带缓存的io是相对于带缓存的io的来说的,带缓存的io有哪些呢.在后面的fwrite.fread函数等标准io操作都是带缓存的io.说了这么多还是没有说清楚带缓存和不带缓存的区别,下面就以write函数和fwrite函数来说明带缓存和不带缓存的区别.虽然write函数叫做不带缓存的…
第一章 第六节 第一小节 这一章没有程序设计和API方面的深入学习,而是注重介绍了unix操作系统中的原始数据类型和系统原型函数,错误处理方面的知识. ____unistd.h____ 该文件包含了unix操作系统中的各种原始数据类型和原型函数, 我的系统是osx 10.0.5, 该文件通常位于操作系统的 ____/usr/include____ 目录下,打开该文件,我们会发现很多预定义信息. ssize_t read(int, void *, size_t) __DARWIN_ALIAS_C(…
http://blog.csdn.net/xiaocainiaoshangxiao/article/category/1800937…
1.上班业余时间把书下载下来,第一章读完了,但是程序只能回家运行啦!Fighting!…
写这篇文正主要是为了介绍下fcntl,并将我自己在学习过程中的一些理解写下来,不一定那么官方,也有错误,希望指正,共同进步- fcntl: 一个修改一打开文件的性质的函数.基本的格式是 int fcntl(int filedes, int cmd, ...) 包含在头文件<fcntl.h>中. 参数三是看cmd这个参数的设置.函数返回一个文件描述符.fcntl有五种功能.下面介绍其中的三种功能 1.复制一个现有的描述符(cmd = F_DUPFD) 2.获得/设置文件描述符标记(cmd = F…