共9页: 上一页 1 2 3 4 5 6 7 8 9 下一页 
摘要: 本章包含内容有:创建新进程程序执行(program execution)进程终止(process termination)进程的各种ID1 进程标识符(Process Identifiers)每个进程都有一个唯一的标识符,进程ID(process ID)。进程的ID是可重用的,如果一个进程被终止,那么它的进程ID会被系统回收,但是会延迟使用,防止该进程ID标识的新进程被误认为是以前的进程。三个特...阅读全文
posted @ 2015-03-18 22:45 suzhou 阅读(746) 评论(2) 编辑
摘要: 在学习进程控制相关知识之前,我们需要了解一个单进程的运行环境。本章我们将了解一下的内容:程序运行时,main函数是如何被调用的;命令行参数是如何被传入到程序中的;一个典型的内存布局是怎样的;如何分配内存;程序如何使用环境变量;程序终止的各种方式;跳转(longjmp和setjmp)函数的工作方式,以及如何和栈交互;进程的资源限制1 main函数main函数声明:int main (int arg...阅读全文
posted @ 2015-03-06 20:22 suzhou 阅读(508) 评论(2) 编辑
摘要: 1 二进制IO(Binary IO)在前一篇我们了解了逐字符读写和逐行读写函数。如果我们在读写二进制文件,希望以此读写整个文件内容,这两个函数虽然可以实现,但是明显会很麻烦且多次循环明显效率很低。为了应对这种场景,标准IO库提供了fread和fwrite函数。函数声明:#include size_t fread(void *restrict ptr, size_t size, size_t nob...阅读全文
posted @ 2015-03-02 16:53 suzhou 阅读(664) 评论(0) 编辑
摘要: 标准IO函数库隐藏了buffer大小和分配的细节,使得我们可以不用关心预分配的内存大小是否正确的问题。虽然这使得这个函数库很容易用,但是如果我们对函数的原理不熟悉的话,也容易遇到很多问题。1 流和FILE实体(Streams and FILE Objects)前面的章节中,IO集中在文件描述符,每一个打开的文件都对应一个文件描述符,通过文件描述符对文件进行操作。现在使用了标准IO库,讨论的重点集...阅读全文
posted @ 2015-02-28 10:48 suzhou 阅读(665) 评论(0) 编辑
摘要: 1 File Times每个文件会维护三个时间字段,每个字段代表的时间都不同。如下表所示:字段说明:st_mtim(the modification time)记录了文件内容最后一次被修改的时间。st_ctim(the changed-status time)记录了文件的i-node最后一次被修改的时间,如修改文件权限位,修改文件所有者ID,修改关联到该文件的link数目。i-node中的信息和...阅读全文
posted @ 2015-02-27 12:52 suzhou 阅读(507) 评论(0) 编辑
摘要: 本篇主要介绍文件和文件系统中常用的一些函数,文件系统的组织结构和硬链接、符号链接。通过对这些知识的了解,可以对Linux文件系统有更为全面的了解。1 umask函数之前我们已经了解了每个文件与权限相关的9个位(bit),我们现在来了解一下当每个进程创建文件时默认会设置该文件的文件权限(the file mode creation mask)。umask函数设置该进程默认创建文件的权限掩码(the...阅读全文
posted @ 2015-02-26 20:35 suzhou 阅读(617) 评论(0) 编辑
摘要: 在前面的两篇,我们了解了IO操作的一些基本操作函数,包括open、read和write。 在本篇我们来学习一下文件系统的其他特性和一个文件的属性,涉及的函数功能包括:查看文件的所有属性;改变文件所有者;改变文件权限;操作文件夹。 我们还会了解一些文件系统相关的数据结构和符号链接(symbol...阅读全文
posted @ 2015-02-17 22:52 suzhou 阅读(606) 评论(2) 编辑
摘要: 引言:本篇通过对open函数的讨论,引入原子操作,多进程通信(共享文件描述符)和内核相关的数据结构。还会讨论集中常见的文件IO控制函数,包括:dup和dup2sync,fsync和fdatasyncfcntlioctl/dev/fd一、文件共享这里所说的文件共享主要指的是进程间共享打开的文件。这一节...阅读全文
posted @ 2015-02-15 22:55 suzhou 阅读(689) 评论(0) 编辑
摘要: 引言: Unix系统中主要的文件操作包括:openreadwritelseekclose unbuffered IO和standard I/O相对应,后面的章节我们会讨论这两者的区别。 在讨论open函数的时候,会引入原子操作,多进程通信(共享文件描述符)和内核相关的数据结构。一,文件描述符 ...阅读全文
posted @ 2015-02-13 12:05 suzhou 阅读(721) 评论(0) 编辑
摘要: 一个堆可以被看作一棵二叉树和一个数组。堆排序主要分为以下几步:建堆,取出堆顶元素,调整堆,递归处理。本文中给出了在数组上建堆和调整以及堆排序的相关代码实现和实现过程的图示,以供参考。阅读全文
posted @ 2014-05-27 11:00 suzhou 阅读(604) 评论(2) 编辑
共9页: 上一页 1 2 3 4 5 6 7 8 9 下一页