什么是open()
?这是做什么的?
if (open("/dev/null", O_RDWR) < 0) {
die("error=open: %m");
}
最佳答案
它会打开一个名为/dev/null 的设备,该设备会丢弃写入其中的任何内容。基本上是一个废纸篓。
因此代码以读/写模式打开该设备。如果打开失败,它会调用函数 die
打印您看到的错误文字以及从 strerror(errno) 返回的系统错误消息并退出程序。您看到传递给 die
的文字可能只是 printf
的格式字符串。
From man 3 printf:
m (Glibc extension.) Print output of strerror(errno). No argument is required.
好像没有glibc函数叫die()
;估计是代码片段作者定义的函数,估计报错后退出函数。然而,我们只能做出有根据的猜测。
关于c - *nix 中 open 系统调用有什么用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12122705/