Unix和Windows系统调用
进程与操作系统的接口由系统调用提供。通常,系统调用以汇编语言指令的形式提供。它们也包含在汇编级程序员使用的手册中。
Unix系统调用
Unix中的系统调用用于文件系统控制、进程控制、进程间通信等。只有通过这些系统调用才能访问Unix内核。通常,系统调用类似于函数调用,唯一的区别是它们移除了用户进程的控制权。
目前Unix接口中大约有80个系统调用。一些重要系统调用的详细信息如下:
系统调用 | 描述 |
---|---|
access() | 检查调用进程是否具有访问所需文件的权限 |
chdir() | chdir命令更改系统的当前目录 |
chmod() | 可以使用此命令更改文件的模式 |
chown() | 更改特定文件的拥有者 |
kill() | 此系统调用向一个或多个进程发送kill信号 |
link() | 使用link系统调用将新的文件名链接到现有文件。 |
open() | 打开一个文件以进行读取或写入操作 |
pause() | pause调用挂起文件,直到发生特定信号。 |
stime() | 此系统调用设置正确的时间。 |
times() | 获取父进程和子进程的时间 |
alarm() | alarm系统调用设置进程的闹钟 |
fork() | 使用此命令创建一个新进程 |
chroot() | 更改文件的根目录。 |
exit() | exit系统调用用于退出进程。 |
Windows系统调用
Windows中的系统调用用于文件系统控制、进程控制、进程间通信、主内存管理、I/O设备处理、安全等。程序使用系统调用与Windows操作系统交互。由于系统调用是访问内核的唯一方式,因此所有需要资源的程序都必须使用系统调用。
一些重要的Windows系统调用的详细信息如下:
系统调用 | 描述 |
---|---|
CreateProcess() | 使用此命令创建一个新进程 |
ExitProcess() | 此系统调用用于退出进程。 |
CreateFile() | 使用此系统调用创建或打开文件。 |
ReadFile() | 使用此系统调用从文件读取数据。 |
WriteFile() | 使用此系统调用将数据写入文件。 |
CloseHandle() | 此系统调用关闭当前正在使用的文件。 |
SetTimer() | 此系统调用设置进程的闹钟或计时器 |
CreatePipe() | 使用此系统调用创建管道 |
SetFileSecurity() | 此系统调用设置特定进程的安全设置 |
SetConsoleMode() | 分别设置控制台的输入模式或输出模式的 输入缓冲区或输出屏幕缓冲区。 |
ReadConsole() | 从控制台输入缓冲区读取字符。 |
WriteConsole() | 将字符写入控制台输出缓冲区。 |
广告