当前位置:   article > 正文

Linux open()函数练习_fd = open(log, o_creat|o_rdwr , 0777 )

fd = open(log, o_creat|o_rdwr , 0777 )

1、先用man 2 open查看一下open函数接口


2、最简单的open函数代码

  1. #include <sys/types.h>
  2. #include <sys/stat.h>
  3. #include <fcntl.h>
  4. #include<stdio.h>
  5. int main()
  6. {
  7. int fd;
  8. fd=open("abc",O_CREAT,0777);
  9. printf("fd=%d\n",fd);
  10. return 0;
  11. }



3、open()一个文件,返回的文件描述符从3开始增加,参数O_CREAT表示当“abc”不存在时创建一个,但是由于umask一开始是002,所以创建出来的权限不是777,而是775,设置umask为000之后再执行一下创建出来的abc的权限位就是777了。


4、open时传入一个参数

  1. #include <sys/types.h>
  2. #include <sys/stat.h>
  3. #include <fcntl.h>
  4. #include<stdlib.h>
  5. #include<stdio.h>
  6. int main(int argc,char *argv[])
  7. {
  8. int fd;
  9. if(argc<2){
  10. printf("./open filename\n");
  11. exit(1);//<stdlib.h>
  12. }
  13. fd=open(argv[1],O_CREAT,0644);
  14. printf("fd=%d\n",fd);
  15. return 0;
  16. }


4、open()一个文件,不存在的话就创建一个,并且往文件里面写东西

  1. #include <sys/types.h>
  2. #include <sys/stat.h>
  3. #include <fcntl.h>
  4. #include<stdlib.h>
  5. #include<stdio.h>
  6. #include<unistd.h>
  7. #include<string.h>
  8. int main(int argc,char *argv[])
  9. {
  10. int fd;
  11. char buf[1024]="hello tengfei";
  12. if(argc<2){
  13. printf("./open filename\n");
  14. exit(1);//<stdlib.h>
  15. }
  16. fd=open(argv[1],O_CREAT | O_RDWR,0644);
  17. write(fd,buf,strlen(buf));
  18. printf("fd=%d\n",fd);
  19. close(fd);
  20. return 0;
  21. }


声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/从前慢现在也慢/article/detail/182917
推荐阅读
相关标签
  

闽ICP备14008679号