重要的POSIX过程


        POSIX大约有100个过程调用,它们中最重要的过程调用如下四表所示,为了区分,分为四类。从广义上看,由这些调用所提供的服务确定了多数操作系统应该具有的功能,而在个人计算机上,资源管理的功能是较弱的(相比于大型机系统)。所包含的服务有创建与终止进程,创建、删除、读出和写入文件,目录管理以及完成输入输出。

 

                                                 进程管理

调用

说明

pid = fork()

创建与父进程相同的子进程

pid = waitpid(pid, &statloc, options)

等待一个子进程终止

s = execve(name, argv, environp)

替换一个进程的核心映像

exit(status)

终止进程执行并返回状态

 

 

                                                 文件管理

调用

说明

fd = fopen(file, how, …)

打开一个文件供读、写或两者有之

s = close(fd)

关闭一个打开的文件

n = read(fd, buffer, nbytes)

把数据从一个文件读到缓冲区去

n = write(fd, buffer, nbytes)

把数据从缓冲区写到一个文件中去

position = lseek(fd, offset, whence)

移动文件指针

s = stat(name, &buf)

取得文件的状态信息

 

 

                               目录和文件系统管理

调用

说明

s = mkdir(name, mode)

创建一个新目录

s = rmdir(name)

删去一个空目录

s = link(name1, name2)

创建一个新目录name2,并指向name1

s = unlink(name)

删去一个目录项

s = mount(special, name, flag)

安装一个文件系统

s = umount(special)

卸载一个文件系统

 

                                        杂项

调用

说明

s = chdir(dirname)

改变工作目录

s = chmod(name, mode)

修改一个文件的保护位

s = kill(pid, signal)

发送信号给一个进程

seconds = time(&seconds)

自1970年1月1日起的流逝时间

 

备注:一些重要的POSIX系统调用,若出错则返回代码s为-1。返回代码如下:pid是进程的id,fd是文件描述符,n是字节数,position是在文件中的偏移量,而seconds是流逝时间。参数在表中解释。有必要指出,将POSIX过程映射到系统调用并不是一对一的。POSIX标准定义了构造系统所必须提供的一套过程,但是并没有规定它们是系统调用,是库调用还是其它形式。如果不通过系统调用(即不需陷入内核),那么从性能上考虑,它通常会在用户空间上完成。不过,大多是POSIX过程确实是通过系统调用来完成的,通常是一个过程直接映射到一个系统调用上。在有一些情况下,特别是所需要的仅仅是某个调用的变体时,此时一个系统调用对应着若干个库过程。

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值