关于open函数,一个很容易出错的问题
来源:互联网 发布:8管脚单片机 编辑:程序博客网 时间:2024/06/05 09:06
在编译一个开源软件的时候,在一处写文件的地方,发现总是权限有问题。
代码如下:
-----
fd = open(filename, O_WRONLY | O_CREAT | O_EXCL, 644)
-----
这么一看,好像没什么问题,
通过open创建一个文件,权限为644的。
网上有关于这个函数参数的介绍:
O_WRONLY 可读可写
O_CREAT 若此文件不存在,则创建它,用此选项的时候,需同时说明第三个参数mode
O_EXCL 如果同时指定了O_CREAT,则文件已经存在,则出错。这可测试一个文件是否存在,如果不存在则创建此文件成为一个原子操作。
mode为644.
按我们理解,644为wr* *r* *r*,
-----
那问题在哪里呢,
我们知道,通常用来表示权限的777,644这种的,实际是8进制的,
而如果我们直接写644,则c语言会当成10进制的数来处理,则会出问题。
8进制的644,需要前面加一个0,为0644
-----
:)
阅读全文
0 0
- 关于open函数,一个很容易出错的问题
- Java很容易出错的一些问题
- 关于python open函数缓冲区的问题
- 很容易忽视的问题
- 一个关于stm32的systick配置出错的小问题
- 几个js很容易出错的陷阱
- C++一个很容易的bug
- c++一个构造函数题目感觉很容易
- python-关于函数间参数传递问题(注意理解,很容易混淆)
- 关于window.open的问题
- 关于System.out.printf()函数出错问题
- 关于Qt bindValue函数出错问题
- 一个容易出错的问题
- 关于move_uploaded_file()出错的问题
- 关于move_uploaded_file()出错的问题
- 关于move_uploaded_file()出错的问题
- ifstream的open函数问题
- open函数的参数问题
- Libevent学习----信号事件
- HibernateTemplate和HibernateDaoSupport
- linux 多路转接之select
- Bottom Sheet的使用和BottomSheetDialogFragment的封装
- 详解java定时任务
- 关于open函数,一个很容易出错的问题
- 技术博客003
- 112. Path Sum
- 用rvest包爬取豆瓣图书数据
- Activity的launchMode介绍
- matlab 全局最优算法 GlobalSearch
- 郁闷!ionic中获取ng-model绑定的值为undefined如何解决
- java——与c++之不同——其他
- No mapping found for HTTP request with URI