目录文件属性

上一节剩余内容:

fileno:

Fileno      FILE*   fp  ->  int  fd     fgets(,);
int  fileno(FILE *stream);

功能

     获得一个文件流指针中的文件描述符

参数:

     stream:文件流指针

返回值:

成功返回文件描述符

失败返回-1

2.fdopen     int fd  -> FILE *fp

 FILE  *fdopen(int fd, const char *mode);

功能:

     将文件描述符转化为文件流指针

参数:

     fd:已经打开的文件描述符

mode:

    "r"

     "r+"

     "w"

     "w+"

     "a"

     "a+"

返回值:

   成功返回文件流指针

   失败返回NULL

文件属性,目录     Dir:

目录操作:

打开目录目标

读取目录

关闭目录

目录:当文件看,只不过操作函数和操作文件函数不一样

相关函数:

1.opendir

DIR *opendir(const char *name);    

功能:

  打开一个目录获得一个目录流指针代表目录整体

参数:

  name:目录名

返回值:

  成功返回目录流指针

  失败返回NULL

2.Readdir         

   info*:一项,目录中有很多项内容,info代表其中的一个

   struct dirent *readdir(DIR *dirp);

结构体:

  d_type:判断这个文件是七种中的哪一个

DT_BLK:块设备,存储类设备,读写硬盘的最小单位是512字节

DT_CHR:字符设备,键盘鼠标等,一个字符一个字符的读/写,字符与字符之间有顺序

DT_DIR:目录文件

DT_FIFO:pipe,管道

DT_LNK

DT_REG:普通文件

DT_SOCK

DT_UNKNOWN:未知文件

功能:

   从目录流中读取文件信息并将保存信息的结构体地址返回

参数:

   dirp:目录流指针

返回值:

  包含文件信息的结构体

  出错或者读到目录流末尾返回NULL

3、关闭目录 

int closedir(DIR *dirp);

 功能:

    关闭之前已经打开的目录流对象

 参数:

     opendir的返回结果中目录流对象

返回值:

    成功  0
    失败   -1;

如果使用了一个结构体要查找这个结构体的成员,不能直接使用man 指令,而是应该用man 指令查找使用这个结构体的函数名

在Linux中,以.开头的文件是隐藏文件,.代表本层    ..代表上层

4、chdir  cd
chdir ("/home/linux"); "../../"

fopen("1.mp4")

int chdir(const char *path);// /home/linux

功能:

   改变当前程序的工作路径

参数:

   path:改变到的路径

返回值:

   成功返回0
   失败返回-1

5、getcwd  //pwd

char *getcwd(char *buf, size_t size);

功能:

   获得当前的工作路径参数:

   buf:保存工作路径空间的首地址

   size:保存路径空间的长度

返回值:

   成功返回包含路径空间的字符串首地址

   失败返回NULL

5、mkdir 

int a =200;

int mkdir(const char *pathname,mode_t mode);//777/666/--x--x--x

目录的默认权限是775

目录名区分大小写:重名的文件和目录不能在一个目录下同时存在

功能:

   创建一个目录     666-

参数:

    pathname:路径

    mode:

    mode & ~umask  0002

返回值:

成功返回0

失败返回-1

6.rmdir rm   -fr  rmdir

int rmdir(const char *pathname);
功能:

   删除一个空目录文件 (里面有文件的话删不了)

  空:不包括.和..

参数:

   pathname:目录文件的名字

返回值:

   成功返回0

   失败返回-1

ls ll

文件属性的获取

 struct stat st;
 struct stat*st ;

1.stat

int stat(const char *path, struct stat *buf);

功能:

   获得文件的属性

  Mode_t:文件类型以及权限

   off_t:文件大小

   ino_t:编号

参数:

  path: 文件的路径

  buf:  属性存放空间的首地址

返回值:

  成功返回0

  失败返回-1

文件名和文件内容是分开放的,文件名不在stat里,而是在目录中。   

inode:相当于文件在硬盘中的位置编号

Links:硬链接。两个文件名关联同一个文件

软连接:快捷方式

软连接直接删不影响,但是硬链接如果删了,软连接就用不了了

对于目录来说,这个5表示上一级目录里有五个目录

Access:文件最后一次被读的时间

  • 17
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值