MINIX 3的常用系统调用

本文详细介绍了系统编程中的核心概念,包括进程管理、信号处理、文件管理、目录操作、保护机制及时间管理。涵盖了fork、waitpid、execve等关键系统调用,以及文件的创建、读写、权限设置等操作。

进程管理

pid = fork() 									创建一个与父进程相同的子进程
pid = waitpid(pid, &statloc, opts) 				等待一个子进程结束
s = wait(&status) 								waitpid的老版本
s = execve(name, argv, envp) 					替换一个进程的内核映像
exit(status) 									终止进程的执行并返回status
size = brk(addr) 								设置数据段的大小
pid = getpid() 									返回调用进程的标识号
pid = getpgrp()									返回调用进程的组标识号
pid = setsid() 									创建一个新的会话并返回其组标识号
l = pstrace(req, pid, addr, data) 				用于调试

信号

s = sigaction(sig, &act, &oldact) 				定义针对信号的处理操作
s = sigreturn(&context) 						从信号返回
s = sigprocmask(how, &set, &old) 				检查或修改信号屏蔽码
s = sigpending(set) 							获得阻塞信号集合
s = sigsuspend(sigmask) 						替换信号屏蔽并挂起进程
s = kill(pid, sig) 								给进程发送一个信号
residual = alarm(seconds) 						设置警报时钟
s = pause() 									将调用进程挂起直到下一个信号

文件管理

fd = creat(name, mode) 							创建一个新文件(已过时)
fd = mknod(name, mode, addr) 					创建一个普通文件,设备文件或目录的i节点
fd = iopen(file, how, ...) 						打开一个文件进行读、写或读写
s = close(fd) 									关闭一个文件
n = read(fd, buffer, nbytes) 					从文件读数据到缓冲区
n = write(fd, buffer, nbytes) 					将缓冲区中的数据写入文件
pos = lseek(fd, offset, whence) 				移动文件指针
s = stat(name, &buf) 							获取文件的状态信息
s = fstat(fd, &buf) 							获取文件的状态信息
fd = dup(fd) 									为打开文件分配一个新的文件描述符
s = pipe(&fd[0]) 								创建一个管道
s = ioctl(fd, request, argp)  					对设备文件进行控制操作
s = access(name, amode) 						检查一个文件的可访问性
s = rename(old, new) 							修改文件的名字
s = fcntl(fd, cmd, ...) 						文件加锁及其他操作

目录及文件系统管理

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 = chroot(dirname) 							改变根目录

保护

s =  chmod(name, mode) 							改变文件的保护位
uid = getuid() 									获取调用进程的uid
gid = getgid() 									获取调用进程的gid
s = setgid(uid) 								设置调用进程的gid
s = chown(name, owner, group) 					改变文件的所有者及其所在的组
oldmask = umask(complmode) 						改变模式屏蔽码

时间管理

seconds = time(&seconds) 						获取当前时间,以1970年1月1日为起点
s = stime(tp) 									设置当前时间,以1970年1月1日为起点
s = utime(file, timep) 							设置文件的“上次访问“时间
s = times(buffer) 								获取用户和系统所使用的时间
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值