文件管理--文件类型
来源:互联网 发布:淘宝导航条怎么改颜色 编辑:程序博客网 时间:2024/05/23 22:02
linux环境下有7种文件:
1.普通文件,包括文本文件和二进制可执行文件。
2.目录文件
3.块特殊文件,这是对代缓冲的设备的抽象
4.字符特殊文件,这是对不带缓冲的设备的抽象。linux的设备不是块设备就是字符设备
5.命名管道(named pipe,FIFO)
6.符号链接
7.套接字,用于网络进程之间通信的一种文件
linux提供一系列宏来判断文件的类型。
对应的宏 文件类型
S_ISREG() 普通文件
S_ISDIR() 目录文件
S_ISCHR() 字符特殊文件
S_ISBLK() 块特殊文件
S_ISFIFO() 命名管道
S_ISLNK() 符号链接
S_ISSOCK() 套接字
使用上述宏时,将stat结构中的st_mode传进去即可。
范例:
//de.c
#include <stdio.h>
#include <stdlib.h>
#include <sys/stat.h>
int main(int argc, char * argv[])
{
char *str;
int i;
struct stat buf; /* 存储文件状态信息 */
for(i = 1; i < argc; i++){
printf("%s ", argv[i]);
if(stat(argv[i], &buf) == -1){ /* 得到文件的状态 */
perror("fail to stat");
continue;
}
if(S_ISREG(buf.st_mode)) /* 普通文件 */
printf("regular file /n");
else if(S_ISDIR(buf.st_mode)) /* 目录文件 */
printf( "directory file/n");
else if(S_ISCHR(buf.st_mode)) /* 字符特殊文件 */
printf( "character special file/n");
else if(S_ISBLK(buf.st_mode)) /* 块特殊文件 */
printf( "block special file/n");
else if(S_ISFIFO(buf.st_mode)) /*命名管道文件 */
printf( "FIFO file/n");
else if(S_ISSOCK(buf.st_mode)) /* 套接字文件 */
printf( "socket file/n");
else if(S_ISLNK(buf.st_mode)) /* 符号链接文件 */
printf( "symbolic link file/n");
else /* 未知类型 */
printf( "unkonw/n");
}
return 0;
}
- 文件管理--文件类型
- Linux文件管理(1)——文件类型和文件属性
- 注册文件类型,关联文件
- #文件编程#------文件类型指针
- 【转】FileTypesMan 强大的文件类型管理工具 (文件扩展名关联/右键菜单管理利器)
- 注册文件类型,设置文件图标
- jsp下载已知文件类型文件
- 文件类型关联的文件图标
- 上传文件(限制文件类型)
- 读文件流的文件类型
- Linux 文件类型、文件扩展名、文件系统
- JPG文件类型及文件组成
- SVN提交文件 过滤文件类型
- struts2获取文件类型,文件后缀名
- 利用文件头判断文件类型
- 根据文件头判断文件类型
- 删除一种文件类型的文件
- 根据文件头判断文件类型
- 黑客术语集锦
- J2me触屏代码
- 张孝祥Java讲课
- 阻止GridView的RowDataBound事件响应
- 7个顶级心理预言
- 文件管理--文件类型
- 中移动MM首批三大块25大类应用披露 游戏最火
- SQL Server 索引结构及其使用(二)
- 开博了~
- J2me中的Midlet类说明
- SQL Server 索引结构及其使用(三)
- FLASH Smoke simulation
- 如何编译 CETK下面的 CameraApp
- SQL Server 索引结构及其使用(四)