良许Linux教程网 干货合集 Linux系统open命令详解

Linux系统open命令详解

Linux系统中open命令一般用于打开文件,下面良许教程网为大家详细讲解一下Linux系统中open命令的具体使用方法。

Linux系统open命令详解

open命令用于打开文件,使用时需要引用头文件,若失败,返回-1,否则返回正整数,0是标准输入流,1是标准输出流,2是标准错误流,其他文件从3开始递增。函数定义如下

 __extern_always_inline int
 open (__const char *__path, int __oflag, ...)
 {
   if (__va_arg_pack_len () > 1)
     __open_too_many_args ();
 
   if (__builtin_constant_p (__oflag))
     {
       if ((__oflag & O_CREAT) != 0 && __va_arg_pack_len () 

入参中,path是要打开或创建的文件路径,oflag是标记,用来标识要打开或创建的文件所拥有的权限,由主flag和备flag组成,主flag有O_RDONLY, O_WRONLY, O_RDWR,分别表示只读,只写,读写,三者必有其一,备flag可以自由选择,常用的一个备flag是O_CREAT,用于在没有该文件的时候,在__path路径下创建该文件。可以附加第三个参数,类型为mode_t,是8进制数,用3位分别表示所有者权限、群组权限、其他用户权限,每位由4 | 2 | 1组成,4是读,2是写,1是执行,例如0600表示所有者拥有读写权限(6 = 4 | 2)。一个示例代码:

 #ifdef _cplusplus
 extern "C" {
 #endif
 
 #include 
 #include 
 #include   //for open
 #include   //for printf
 
 
 void main(argc, argv)
  int argc;
  char ** argv;
 {
  char * filename = "lala";   //要创建的文件
  char * str = "hello, world\n";  //要向文件中写入的内容
  int fd1 = open(filename, O_RDWR | O_CREAT, 0644);
  printf("tmp = %d\n", fd1);
  write(fd1, str, strlen(str) + 1);
  system("cat lala");
 
  int fd2 = open(filename, O_CREAT | O_WRONLY | O_EXCL, 0600);
  if (-1 == fd2)
  {
   fd2 = open(filename, O_WRONLY | O_EXCL | O_TRUNC, 0600);
   printf("fd = %d\n", fd2);  //fd2的值会比fd1大1
  }
  close(fd1);
  close(fd2);
  system("cat lala");
 }
 
 
 
 
 #ifdef _cplusplus
 }
 #endif

效果如下

img

至此关于Linux系统opne命令的具体使用方法分享结束,大家有任何疑问都可以在评论区留言。

以上就是良许教程网为各位朋友分享的Linux系统相关内容。想要了解更多Linux相关知识记得关注公众号“良许Linux”,或扫描下方二维码进行关注,更多干货等着你!

137e00002230ad9f26e78-265x300

本文由 良许Linux教程网 发布,可自由转载、引用,但需署名作者且注明文章出处。如转载至微信公众号,请在文末添加作者公众号二维码。
良许

作者: 良许

良许,世界500强企业Linux开发工程师,公众号【良许Linux】的作者,全网拥有超30W粉丝。个人标签:创业者,CSDN学院讲师,副业达人,流量玩家,摄影爱好者。
上一篇
下一篇

发表评论

联系我们

联系我们

公众号:良许Linux

在线咨询: QQ交谈

邮箱: yychuyu@163.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

关注微博
返回顶部