一.Linux文件操作相关函数
stat函数 *****
穿透(追踪)函数 – 软连接
lstat函数
不穿透(追踪)
truncate函数 ***
文件长度 100
第二个参数指定长度为20(只保留文件的前20个)
。。。。。。。。。300 (文件被扩展)
fcntl 函数
改变已经打开函数的属性
dup dup2
复制现有的文件描述
二、进程相关的概念
1.程序/进程
程序指的是编译好的二进制文件,在磁盘上,不占用系统资源(内存,cpu,设备。锁。。。)
进程是一个抽象的概念,是活跃的程序,占用系统资源,在内存种执行。(程序运行起来,产生一个进程)
2.并发
在操作系统中,一个时间段中有多个进程都处于已启动运行到运行完毕之间的状态。但任一个时间点只有一个进程执行。
3.单道程序设计
cpu在同一时刻只能处理一个任务,处理完一个程序后在执行其他的程序。
4.多道程序设计
每一个程序把自己划分多个任务片段,cpu也会划分自己的时间轮片。
5.cpu/mmu
虚拟地址:可用的地址空间有4G.
6.进程控制块PCB
PCB进程控制块位于内核,是task_struct结构体一般位于/user目录下。
1)进程id,系统中每个进程有唯一id,在c语言中用pid_t类型表示,其实就是一个非负数
2)进程状态,有初始,就绪,运行,挂起,停止等状态。、
3)进程切换时需要保存和恢复的CPU寄存器。
4)描述虚拟地址空间的信息
5)描述控制终端的信息
6)当前工作目录
7)umask掩码
8)文件描述表,包晗很多指向file结构体的指针
9)和信号相关的信息
10)用户id和组id
11)会话(session)和组id
12)进程可以使用的资源上限(Resource Limit)
三、环境变量
常用的环境变量/作用:是指操作系统中用来指定操作系统运行环境的一些参数通常具备以下特性
1)字符串(本质)2)有统一的格式:名=值 3)值用来描述进程环境的信息。
存储形式:与命令行参数类似。char*[]数组,数组名environ,内部存储字符串,NULL作为哨兵结尾。
使用形式:与命令行参数类似
加载位置:位于用户去,高于stack的起始位置
引入环境变量表:须声明环境变量。extern char**environ
函数
getenv
setenv
unsetenv
四、进程控制原语
fork函数
返回值有两个:
第一个返回子进程pid(非负整数>0)
第二个返回0
循环创建子进程的架构
exec函数族
各个函数的参数使用方法/作用
wait/waitpid
回收子进程的一般方式