一、 文件操作

1、 获取文件属性

#include<sys/types.h>
#include<sys/stat.h>
#include<unistd.h>int stat(const char *filename, struct stat *buf);
int fstat(int fd, struct stat *buf);
int lstat(const char *filename, struct stat *buf);部分常用结构体成员:st_mode  : 文件的类型和存取权限st_nlink : 文件硬连接数目st_uid   : 文件所有者的用户idst_gid   : 文件所有者的组idst_size  : 文件大小st_mtime : 文件最后修改时间st_atime : 文件最后访问时间st_ctime : 文件最后(文件所有者、所有组、权限)更改时间//输出时间时要用ctime()函数将时间转化为字符串输出printf("mtime: %s\n", ctime(buf.st_mtime));/*判断文件属性*/S_ISLNK : 链接文件S_ISREG : 一般文件S_ISDIR : 目录文件S_ISCHR : 字符设备文件S_ISBLK : 块设备文件S_ISFIFO: FIFO文件S_ISSOCK: socket文件

2、 设置文件属性

1) 修改文件权限

#include<sys/types.h>
#include<sys/stat.h>int chmod(const char *path, mode_t mode);//文件名
int fchmod(int fd, mode_t mode);//文件描述符

2) 修改文件用户id / 组id

#include<sys/types.h>
#include<unistd.h>int chown(const char *path, uid_t owner, gid_t group);//文件名
int fchown(int fd, uid_t owner, gid_t group);//文件描述符
int chown(const char *path, uid_t owner, gid_t group);//适于链接文件

3) 修改文件大小

#include<sys/types.h>
#include<unistd.h>int truncate(const char *path, off_t len);//文件名
int ftruncate(int fd, off_t len);//文件描述符

4) 修改文件时间

#include<sys/types.h>
#include<utime.h>
int utime(const char *filename, struct utimbuf *buf);struct utimbuf{time_t actime;//access timetime_t modtime;//modification time
}

2、 文件移动和删除

1) 文件移动

#include<stdio.h>
int rename(const char *oldname, const char *newname);

2) 文件删除

#include<unistd.h>
int unlink(const char *name);
int remove(const char *name);//若有进程打开了文件,则文件暂时不被删除,直到所有打开该文件的进程都结束时才被删除
//若name指向socket文件、FIFO文件或设备文件时,该name被删除,但已打开该文件的进程仍然可以使用这些文件

3、目录操作

1) 目录的创建和删除

#include<sys/types.h>
#include<sys/stat.h>
int mkdir(const char *name, mode_t mode);//需设置文件权限
int rmdir(const char *name);//只能删除空目录

2) 获取当前目录

#include<unistd.h>
char * getcwd(char *buf, size_t size);
char getwd(char *buf);
//获得绝对路径

2) 设置工作目录

#include<unistd.h>
int chdir(const char *path);
int fchdir(int fd);

4、获取目录信息

#include<sys/types.h>
#include<dirent.h>
DIR *opendir(const char *name);
struct dirent *readdir(DIR *dir);
int closedir(DIR *dir);struct dirent{long d_ino;off_t off;unsigned short d_reclen;char d_name;//filename
}

二、 其他总结

    1、 磁盘分区分为主分区、扩展分区,而扩展分区有可分为若干逻辑分区,同时规定主分区、扩展分区之和最多为4个(原因:磁盘MBR分配有446字节,而分区表只占用64字节,而每个分区所存信息需要16字节,故最多有4个分区),扩展分区最多只能有1个。2、 block为1k的inode可存储最大单一文件的大小为16GB。inode分为12个直接、1间接、1双间接、1三间接:12个直接指向: 12 * 1K = 12K
间接 :  256 * 1K = 256K
双间接: 256 * 256 * 1K
三间接: 256 * 256 * 256 * 1K
总和:   12K + 256K + 256*256K + 256*256*256K = 16GB3、什么是格式化?电子计算机上指用一种系统软件对硬盘或软盘进行处理,使符合数据存储和读取的规定格式。为什么要进行格式化?每种操作系统所设置的文件属性、权限不同,为了存放这些文件所需的数据,就需要将分区进行格式化,以成为操作系统能够利用的文件系统格式。

文件操作(二) 其他总结相关推荐

  1. Node.js文件操作二

    前面的博客 Node.js文件操作一中主要是对文件的读写操作,其实还有文件这块还有一些其他操作. 一.验证文件path是否正确(系统是如下定义的) fs.exists = function(path, ...

  2. iOS学习之iOS沙盒(sandbox)机制和文件操作(二)

    接上篇 iOS学习之iOS沙盒(sandbox)机制和文件操作(一) 我们看看如何获取应用程序沙盒目录.包括真机的沙盒的目录. 1.获取程序的Home目录 [cpp] view plaincopy N ...

  3. python文件操作二

    1.常用函数: fileObject.read([size]) size为读取的长度,以byte为单位.如果不指定参数,表示一次性读取全部 内容,以字符串形式返回,并且每一行结尾会有一个"\ ...

  4. Python 文件操作二

    readlines 就像read没有参数时一样,readlines可以按照行的方式把整个文件中的内容进行一次性读取,并且返回的是一个列表,其中每一行的数据为一个元素 #coding=utf-8 f = ...

  5. (0052)iOS开发之沙盒(sandbox)机制和文件操作(二)

    我们看看如何获取应用程序沙盒目录.包括真机的沙盒的目录. 1.获取程序的Home目录 NSString *homeDirectory = NSHomeDirectory(); NSLog(@" ...

  6. Java 文件操作二(重命名、设置只读、是否存在、指定目录中创建文件、获取文件修改日期、创建文件、文件路径比较)

    文件重命名 import java.io.File;public class Main {public static void main(String[] args) {File oldName = ...

  7. python3 转码的函数_python基础3之文件操作、字符编码解码、函数介绍

    内容概要: 一.文件操作 二.字符编码解码 三.函数介绍 一.文件操作 文件操作流程: 打开文件,得到文件句柄并赋值给一个变量 通过句柄对文件进行操作 关闭文件 基本操作: 1 #/usr/bin/e ...

  8. python文件操作解码_python基础3之文件操作、字符编码解码、函数介绍

    内容概要: 一.文件操作 二.字符编码解码 三.函数介绍 一.文件操作 文件操作流程: 打开文件,得到文件句柄并赋值给一个变量 通过句柄对文件进行操作 关闭文件 基本操作: 1 #/usr/bin/e ...

  9. python基础3之文件操作、字符编码解码、函数介绍

    内容概要: 一.文件操作 二.字符编码解码 三.函数介绍 一.文件操作 文件操作流程: 打开文件,得到文件句柄并赋值给一个变量 通过句柄对文件进行操作 关闭文件 基本操作: 1 #/usr/bin/e ...

最新文章

  1. OSI第二层:数据链路层功能及作用
  2. mysql创建表的时候不要添加drop操作
  3. 贪心算法之——背包问题(nyoj106)
  4. PyCairo 中的透明度
  5. linux笔记-硬链接和符号链接
  6. C语言课后习题(54)
  7. 一文带你彻底了解大数据处理引擎Flink内存管理
  8. 教师提升微能力_国培主讲风采录:信息技术再提升 微能力点巧研修
  9. 【股价预测】基于matlab遗传算法优化BP神经网络预测股价【含Matlab源码 1250期】
  10. 深入浅出虚拟机-第三版笔记(重点)整理-2022-04-06
  11. 用java设计族谱家谱制_家谱网站的设计与实现.doc
  12. 计算机设备属于什么会计科目,​机器设备属于什么会计科目
  13. python 爬虫 | selenium换页问题
  14. vue-lunar-full-calendar日程控件加农历、24节气和中国节假日的功能
  15. 仿微信悬浮通知栏/横幅通知
  16. moto XT316 刷机+ROOT权限获取
  17. 下面哪个函数不能作为C++ std::sort的比较函数。
  18. C语言读写BMP图片(附Github下载链接和视频讲解地址)
  19. noip2012 文化之旅 (深搜,最优性剪枝)
  20. 【信号与系统】5. 系统的特性、LTI系统分析

热门文章

  1. 【译】10个有趣的JSCSS库(2018.10)
  2. 完全CSS实现鼠标移上出现层的效果(超简单)
  3. 一招搞定css页面布局
  4. css 写打印样式问题
  5. Vue表格中,对数据进行转换、处理
  6. React hook 中的数据获取
  7. Java基础知识(数据类型和集合)
  8. leetcode 罗马数字转整数
  9. Python基础(8)_迭代器、生成器、列表解析
  10. echarts如何显示在页面上