文件操作
来源:互联网 发布:阿里域名备案需要什么 编辑:程序博客网 时间:2024/06/01 17:29
文件操作常用到的函数和需要注意的细节
stat函数
获取文件的属性(从inode结构体中获取)
int stat(const char *path,struct stat*buf);
参数:文件名,inode结构体指针(传出参数)
文件属性将通过传出参数返回给调用者
lstat函数
int lstat(const char * path,struct stat*buf)
获取文件属性,参数同stat
stat于lstat的区别在于穿透符号链接,stat会,lstat不会
特殊权限位:
包含三个二进制位。设置组id位,setGID;设置用户id位setID;粘住位sticky
access函数
测试指定文件是否存在/拥有某种权限
int access(count char * pahtname,int mode);
成功/具备该权限:0 失败/不具备-1
通常使用access函数来测试某个文件是否存在,参数2为 F_OK
chmod函数
修改文件的访问权限
int chmod(const char * path,mode_t mode);
成功:0 失败:-1
int fchmod(int fd,mode_t mode);
truncate函数
截断文件长度指定长度。常用来拓展文件大小,代替lseek。
int truncate(const char * path,off_t length);
成功:0 失败:-1
int ftruncate(int fd,off_t lenth);
link 函数
目录项游离于inode之外,是为了实现文件共享。linux允许多个目录项共享一个inode,即共享盘块(data)。不同文件名,在我们眼中理解成两个文件,但是在内核眼里是同一个文件。
link函数可以为已经存在的文件创建目录项(硬链接)
int link(const char * oldpath,const char * newpaht);成功0
mv 命令是修改了目录项,并不修改文件本身。
- 文件操作
- 文件操作
- 文件操作
- 文件操作
- 文件操作
- 文件操作
- 文件操作
- 文件操作
- 文件操作
- 文件操作
- 文件操作
- 文件操作
- 文件操作
- 文件操作
- 文件操作
- 文件操作
- 文件操作
- 文件操作
- PDF 获取与展示
- 编译器 —— 移除警告
- ORACLE数据库连接之Io异常The Network Adapter could not establish the connection
- as翻译插件ECTranslation
- apache本地配置多端口多站点
- 文件操作
- hdu 1164 Eddy's research I【快速打印素数表】【水题】
- java使用Scanner类循环从控制台中获取数据的方法代码。
- siblings()遍历同胞元素
- iOS项目打包 Archive UUID
- 最小生成树算法[Prime/(Kruskal)]
- 不带www转向带www301重定向的方法apache+window环境
- 子网掩码怎么计算
- Struts2_参数传值