文件操作(二) 其他总结
一、 文件操作
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、什么是格式化?电子计算机上指用一种系统软件对硬盘或软盘进行处理,使符合数据存储和读取的规定格式。为什么要进行格式化?每种操作系统所设置的文件属性、权限不同,为了存放这些文件所需的数据,就需要将分区进行格式化,以成为操作系统能够利用的文件系统格式。
文件操作(二) 其他总结相关推荐
- Node.js文件操作二
前面的博客 Node.js文件操作一中主要是对文件的读写操作,其实还有文件这块还有一些其他操作. 一.验证文件path是否正确(系统是如下定义的) fs.exists = function(path, ...
- iOS学习之iOS沙盒(sandbox)机制和文件操作(二)
接上篇 iOS学习之iOS沙盒(sandbox)机制和文件操作(一) 我们看看如何获取应用程序沙盒目录.包括真机的沙盒的目录. 1.获取程序的Home目录 [cpp] view plaincopy N ...
- python文件操作二
1.常用函数: fileObject.read([size]) size为读取的长度,以byte为单位.如果不指定参数,表示一次性读取全部 内容,以字符串形式返回,并且每一行结尾会有一个"\ ...
- Python 文件操作二
readlines 就像read没有参数时一样,readlines可以按照行的方式把整个文件中的内容进行一次性读取,并且返回的是一个列表,其中每一行的数据为一个元素 #coding=utf-8 f = ...
- (0052)iOS开发之沙盒(sandbox)机制和文件操作(二)
我们看看如何获取应用程序沙盒目录.包括真机的沙盒的目录. 1.获取程序的Home目录 NSString *homeDirectory = NSHomeDirectory(); NSLog(@" ...
- Java 文件操作二(重命名、设置只读、是否存在、指定目录中创建文件、获取文件修改日期、创建文件、文件路径比较)
文件重命名 import java.io.File;public class Main {public static void main(String[] args) {File oldName = ...
- python3 转码的函数_python基础3之文件操作、字符编码解码、函数介绍
内容概要: 一.文件操作 二.字符编码解码 三.函数介绍 一.文件操作 文件操作流程: 打开文件,得到文件句柄并赋值给一个变量 通过句柄对文件进行操作 关闭文件 基本操作: 1 #/usr/bin/e ...
- python文件操作解码_python基础3之文件操作、字符编码解码、函数介绍
内容概要: 一.文件操作 二.字符编码解码 三.函数介绍 一.文件操作 文件操作流程: 打开文件,得到文件句柄并赋值给一个变量 通过句柄对文件进行操作 关闭文件 基本操作: 1 #/usr/bin/e ...
- python基础3之文件操作、字符编码解码、函数介绍
内容概要: 一.文件操作 二.字符编码解码 三.函数介绍 一.文件操作 文件操作流程: 打开文件,得到文件句柄并赋值给一个变量 通过句柄对文件进行操作 关闭文件 基本操作: 1 #/usr/bin/e ...
最新文章
- OSI第二层:数据链路层功能及作用
- mysql创建表的时候不要添加drop操作
- 贪心算法之——背包问题(nyoj106)
- PyCairo 中的透明度
- linux笔记-硬链接和符号链接
- C语言课后习题(54)
- 一文带你彻底了解大数据处理引擎Flink内存管理
- 教师提升微能力_国培主讲风采录:信息技术再提升 微能力点巧研修
- 【股价预测】基于matlab遗传算法优化BP神经网络预测股价【含Matlab源码 1250期】
- 深入浅出虚拟机-第三版笔记(重点)整理-2022-04-06
- 用java设计族谱家谱制_家谱网站的设计与实现.doc
- 计算机设备属于什么会计科目,​机器设备属于什么会计科目
- python 爬虫 | selenium换页问题
- vue-lunar-full-calendar日程控件加农历、24节气和中国节假日的功能
- 仿微信悬浮通知栏/横幅通知
- moto XT316 刷机+ROOT权限获取
- 下面哪个函数不能作为C++ std::sort的比较函数。
- C语言读写BMP图片(附Github下载链接和视频讲解地址)
- noip2012 文化之旅 (深搜,最优性剪枝)
- 【信号与系统】5. 系统的特性、LTI系统分析