帮助解释shmget() shmat()等系统调用

来源:百度知道 编辑:UC知道 时间:2024/05/28 20:19:18
操作系统中的系统调用,解释一下其中的原理.谢谢
shmget(key_t key,int size,int shmflg);
其中的三个参数分别是什么意思.看书上说key的值为IPC_PRIVATE.又说key并非与任何一个已存在的共享内存标识符相关.

系统调用我也明白 就是不明白这参数什么意思,IPC_PRIVATE,shmflg 的值是什么,表示什么意思啊?

系统调用,都是指操作系统的开发者,提供了许多系统的程序库,实现输入/输出等基本的功能,我们编写程序的时候就调用这些程序库,不必要自己到显示器上绘图和读取键盘端口。

在UNIX操作系统下,系统调用主要是C语言格式调用的一些函数库。比如printf和scanf函数,我们写程序的时候直接可以用,编译系统把它转变为对操作系统函数库调用的代码,目标文件可以独立运行。

在WINDOWS系统,系统调用主要是以一系列的DLL、EXE文件方式给出,比如USER32.DLL、NTDLL.DLL等,编写程序的时候可以直接调用里面的GETDC等函数库。

在DOS系统下,操作系统不以函数库形式提供系统调用,而是把整个操作系统的所有代码都LOAD到内存里面,把相关系统调用功能安装到中断接口里面,我们写的程序需要调用的时候,调用相应的中断。比如打开文件等操作,就调用INT 21