问题描述
- 求教openat函数的用法
-
《Unix环境高级编程》第三章、第四章出现了大量的at类函数。像openat、fstatat等。第一个参数要给一个int fd,一直没看懂是什么意思。求指教!
int openat(int dirfd, const char *pathname, int flags, mode_t mode);
这是函数原型。看格式是要给出一个目录的文件描述符,可是目录的描述符是DIR型的,是个结构体,open函数也不能打开一个目录,实在看不太懂这个函数的用法。
最好能给出能编译通过的程序实例,不胜感激!
解决方案
http://www.yiibai.com/unix_system_calls/openat.html
解决方案二:
- (UIImage *)stretchableImageWithLeftCapWidth:(NSInteger)leftCapWidth topCapHeight:(NSInteger)topCapHeight
这个函数是UIImage的一个实例函数,它的功能是创建一个内容可拉伸,而边角不拉伸的图片,需要两个参数,第一个是不拉伸区域和左边框的宽度,第二个参数是不拉伸区域和上边框的宽度。......
答案就在这里:stretchableImageWithLeftCapWidth:topCapHeight:函数用法
解决方案三:
参考文档:http://linux.die.net/man/2/openat
dirfd就是用open()打开后返回的文件夹的fd。
文档里的解释是:
1、如果你给的pathname是相对路径,那么dirfd就是用来计算这个相对路径的文件夹的fd。
2、如果你给的pathname是相对路径,但是dirfd是一个特殊值AT_FDCWD,那么这个相对路径就是按照当前所在路径计算的。
3、如果pathname是绝对路径,那么dirfd就没作用。
时间: 2025-01-19 09:24:01