c - *nix 中 open 系统调用有什么用

标签 c linux unix file-io

什么是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/

相关文章:

linux - 使用 "grep"命令查找包含电话号码的txt文件

c - CS50 的 pset4 上的段错误

c - 从哪里开始(自)学习 C,或者我应该学习不同的语言?

linux - 试图在目录中安装 express mysql 但无法这样做

python - 在 perl/python 中保持系统退出状态的超时限制

linux - 比较磁盘分区中的两个值,发送 80% 阈值的警报

windows - 操作系统崩溃的常见原因

c++ - 在线法官的测试环境

c - 在 Eclipse CDT 中监视函数内的静态变量

arrays - 对 bash 脚本中的每个文件使用 exec