28,UC(07)

/*
 达内学习 UC day07 2013-10-11
*/
回忆过去:
 文件的一些函数 -lseek(),dup()/dup2(),fcntl()
 fcntl() 复制文件描述符,获取设置文件标志,文件锁
 fstat()  获取文件属性,(类似ls -l)   文件大小
今天:
 文件的一些相关函数 -access()/chmod()/truncate()/umask()
mmap()映射文件,目录和目录操作,进程

目录操作的函数
mkdir() 新建目录
rmdir() 删除空目录
chdir() 改变当前目录
getcwd() 获取当前目录   以绝对路径方式获取当前路径(不打印pwd) 读目录的内容(获取文件和字目录)
opendir() 打开一个目录
readdir() 读目录的一个子项,循环读可以读所有
进程:ps -aux 察看进程(linux) UNIX不支持  用/user/ucb/ps 支持
ps  -ef 通用察看进程命令(Unix/Linux)
1> 进程常见的状态:
S 休眠状态
O 可运行状态
R 运行状态
T 挂起状态
Z 僵尸进程(已经结束但自由没有回收的进程)

2> 父子进程之间的关系,父进程启动子进程,一个父进程可以启动多个子进程,一个子进程只能有一个父进程。
1 父进程启动子进程后,父子进程同时运行,如果子进程先结束,子进程会给父进程发信号,父进程回收子进程的资源。
2 如果父进程启动进程后,父子进程同时运行,如果父进程先结束,子进程变成孤儿进程,孤儿进程会认init进程(1)为新的父进程,init进程叫孤儿院
3 父进程启动子进程后,父子进程同时运行,如果子进程先结束,但是父进程没有收到子进程的信号,子进程变成僵尸进程.

3> 进程ID和常用函数
 每个进程都有一个进程ID(PID),PID是进程的唯一标识,首先保证 同一时刻 进程ID不能出现重复,如果进程结束,PID可以 延迟重用
常见函数:
 getpid() 获得当前进程的PID
 getppid() 取当前进程福进程ID
 getuid() 取当前有效用户的ID
 geteuid() 取当前有效用户的ID
 su  切换用户
4> 创建子进程的方式:
 fork()
 fork() + exec系列函数
 fork() 是一个超级复杂的简单函数
 fork()通过复制父进程的方式创建进程(照猫画虎)
 fork()创建的子进程复制父进程的全局区,BSS段,堆区,栈区,和父进程共享代码区
 fork()之前的代码只有父进程执行一次,fork()之后的代码父子进程分别执行一次(2次)
 由于fork()内部一定是先创建子进程然后再返回,因此return 语句将执行2次,父进程返回子进程的PID,子进程返回0
fork() 创建子进程,不确定父子进程谁先运行
但是vfork()创建子进程,确保子进程先运行
在复制文件描述符号时,子进程之复制描述符,不复制文件表。

作业:
 实现ls -l功能,针对文件(stat())

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值