没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
第一章Linux基本文件IO
1linux文件
2文件访问
3文件访问的系统调用API
3.1文件的创建、打开和关闭
3.2文件读
3.3文件写
3.4文件的读写位置
3.5文件的访问权限
3.6修改文件属性
4阻塞与非阻塞
4.1阻塞读终端
4.2非阻塞终端
第二章Linux文件系统
1文件系统格式
2ext2
3获取文件属性
3.1stat/lstat
3.2粘住位S_ISVTX
3.3SUID/SGID位
4改变文件属性
4.1chmod更改文件权限
4.2chown更改所属用户
4.3utime修改文件的访问修改时间
4.4truncate截断文件
4.5link文件连接
4.5.1link
4.5.2symlink建立文件符号连接
4.5.3readlink取得符号连接所指的文件
4.5.4unlink删除文件
4.5.5rename更改文件名称或位置
4.5.6getcwd获取当前的工作目录
4.5.7chdir改变当前的工作目录
5.文件夹操作
5.1mkdir创建文件夹
5.2rmdir删除文件夹
5.3opendir打开文件夹
5.4readdir读文件夹
5.5rewinddir重置读取目录的位置
5.6telldir、seekdir
5.7closedir
5.8递归遍历目录
6VFS虚拟文件系统
第三章Linux进程
1什么是进程
2taststruct简介
3进程状态以及状态切换
4进程环境变量
4.1获取环境变量
4.2设置环境变量
5进程控制
6进程调度
7获得进程有关的ID
8fork函数创建进程
9终止进程以及进程返回值
10等待进程
11执行其他程序
第四章Linux进程间通信
1信号
1.1什么是信号机制
1.2进程对信号的响应和处理
1.3信号的发送
1.4等待信号
1.5信号集
1.6信号传递过程
1.7sigaction函数
1.8read函数的EINTR错误
1.9可重入函数
1.10SIGCHLD信号处理
2管道FIFO
2.1管道基本概念
2.2无名管道的创建与读写
2.3命名管道FIFO
2.4管道容量
2.5注意事项
2.6查看系统限制
3POSIXIPC
3.1POSIX信号量
3.1.1创建一个信号量
3.1.2等待一个信号量
3.1.3释放一个信号量
3.1.4综合例子
3.2POSIX消息队列
3.2.1创建(并打开)、关闭、删除一个消息队列
3.2.2Posix消息队列读写
3.2.3消息队列的属性
3.3POSIX共享内存
第五章Linux进程关系
1进程组
2终端
3会话
4守护进程
4.1概念
4.2如何创建守护进程
第六章Linux多线程
1线程的创建和使用
1.1创建线程
1.2错误打印
1.3线程的退出
1.4线程回收
1.5pthread_cancel
1.6pthread_equal
2线程属性
2.1线程属性初始化
2.2线程的分离状态
2.3线程的栈大小(stacksize)
3线程同步互斥锁
4读写锁
5线程同步条件变量
5.1条件变量初始化
5.2条件变量销毁
5.3等待条件变量
5.4唤醒等待的线程
6线程同步信号量
6文件锁
第一章Linux基本文件IO
对普通计算机用户来说,文件就是存储在永久性存储器上的一段数据流,通常是可执行程序或者是某种格式的
数据。文件放置于文件夹,文件夹放置于某个磁盘分区中,这是从普通计算机用户眼里看到的文件。
但linux操作系统中文件的概念,却远远不局限与此,文件是linux对大多数系统资源访问的接口。linux常见的
文件类型:普通文件、目录文件、设备文件、管道文件、套接字和链接文件等等。
在linux中所有的进程,在内核中都有一个对应的结构体来描述这个进程task_struct,也叫做进程管理块PCB
(processcontrolblock),这个结构体中有一个文件描述符表files_struct,用来保存该进程对应的所有文件描述
符。
1linux文件
1. 普通文件:普通计算机用户看到的文件,仅仅是linux文件类型中的一种,我们称之为普通文件,它们通
常驻留在磁盘上的某处。普通文件按照信息存储方式来划分,可以分为文本文件和二进制文件:
文本文件:这类文件以文本的某种编码(比如ASCII码)形式存储在存储器中,它是以“行”为基础结构的
一种信息组织和存储方式。
二进制文件:这类文件以文本的二进制形式存储在计算机中,用户一般不能直接读懂它们,二进制文件
一般是可执行程序、图像、声音等等。
2.目录文件:主要目的是用于管理和组织系统中的大量文件。它存储一组相关文件的位置、大小等文件有关
的信息。
3.设备文件:linux操作系统把每一个I/O设备都看成一个文件,与普通文件一样处理,这样可以使文件与设
备的操作尽可能统一,对I/O设备的使用和一般文件的使用一样不必了解I/O设备的细节。
4.管道文件:主要用于在进程间传递数据。
5.套接字文件:用于网络上的通信。
6.符号链接文件:这个文件包含了另一个文件的路径名。被链接的文件可以是任意文件或目录。
上述是linux丰富的文件类型,包括除了普通文件和目录文件之外的几种“特殊文件”,正是由于这些特殊文件的
存在,linux程序员可以按照统一的接口来实现基本文件读写、设备访问、硬盘读写、网络通信、系统终端,甚
至内核状态信息的访问等等。无论是哪种类型的文件,linux都把他们看作是无结构的流式文件,把文件的内容
看作是一系列有序的字符流。
2文件访问
程序要访问一个文件,首先需要通过一个文件路径名来打开文件,当进程打开一个文件的时候,进程将获得
一个非负整数标识,即"文件描述符 filedescription 。通过文件描述符,可以对文件进行I/O处理。
对文件执行I/O操作,有两种基本方式:一种是系统调用的I/O方法,另一种是标准C的文件I/O方法。
系统调用的I/O方法和标准C的I/O方法的区别是:
1、基于标准C的文件操作函数的名字都是以字母“f”开头,而系统调用函数则不用,例如 fopen() 对应于系统
调用的 open() ;
2、系统调用I/O方法是更低一级的接口,通常完成相同的任务是,比使用基于标准c的I/O方法需要更多编码的
工作量。
3、系统调用直接处理文件描述符,而标准C函数则处理 FILE* 类型的文件句柄。
4、基于标准C的I/O方法其实就是对系统调用方法的封装,标准C的I/O方法使用自动缓冲技术,使程序能减少
系统调用,从而提高程序的性能。
5、基于标准C的I/O方法替用户处理有关系统调用的细节,比如系统调用被信号中断的处理等等。
基于标准C的I/O方法显然给程序员提供了极大的方便,但是有些程序却不能使用基于标准C的I/O方法。比如
使用缓冲技术使得网络通信陷入困境,因为它将干扰网络通讯所使用的通信协议。考虑到这两种I/O方法的不同,在
使用终端或者通过文件交换信息时,通常采用基于标准C的I/O方法。而使用网络或者管道通信时,通常采用系统调
用的I/O方法。
3文件访问的系统调用API
剩余137页未读,继续阅读
资源评论
匠心十年
- 粉丝: 5
- 资源: 8
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功