请教系统调用的问题,附带一个相关程序的问题!
#include <unistd.h>
#include <fcntl.h>
int main(){
int fd;
char buf[512];
fd = open("/usr/tmp/exam.c", O_RDONLY);
if (fd >= 0)
read(fd, buf, sizeof(buf));
return 0;
}
这是从一篇文档中取下的example,我在vmware下调试,输出结果是“couldn't open",不知什么地方有问题?还有一个奇怪现象,同一个程序也是与文件操作有关的,第一天运行正常,第二天却显示 could not open,不知为什么??
另外,有关系统调用时,比如上面的open,要调用sys_open(),通过set_system_gate(0x80,&system_call),进入,而set_system_gate是在初始化时执行的,一旦初始化完了系统调用还是从这里通过int 0x80进入吗?
请指教!谢谢