> 시스템 튜토리얼 > 리눅스 > Linux 시스템의 파일 유형 탐색: 일반 파일, 디렉터리 및 특수 파일

Linux 시스템의 파일 유형 탐색: 일반 파일, 디렉터리 및 특수 파일

王林
풀어 주다: 2024-06-27 10:58:25
원래의
950명이 탐색했습니다.

探索 Linux 系统中的文件类型:普通文件、目录与特殊文件

다음 섹션에서는 Linux에서 C 언어를 개발할 때 I/O를 수행하는 기본 기능에 대해 설명합니다. Linux 시스템에는 여러 가지 파일 형식이 있습니다. 그러나 예제를 실험하는 과정에서 Linux 시스템에는 여러 가지 파일 형식이 있으며 모두 일반 파일을 중심으로 진행됩니다.

linux系统有几种文件类型_linux典型文件系统类型_linux特有的文件系统리눅스의 파일 형식

섹션 9에서 Unix 시스템(Linux는 Unix와 유사한 시스템)이 "모든 것이 파일"이라고 생각하는 방식에 대해 이야기한 것을 기억하시나요? 유닉스 시스템의 대부분의 파일은 일반 파일과 디렉토리이며, 이 두 가지 유형의 파일도 가장 일반적으로 사용됩니다. 예를 들어 /usr 디렉토리와 그 위의 hello.txt 텍스트 파일은 일반 파일 유형에 속합니다.

실제로 Linux 사이트:infoq.cn에서 Linux 시스템은 모든 파일을 다음 범주로 나눕니다.

리눅스 시스템의 장치(하드 디스크, 병렬 포트 등)는 블록 특수 파일이거나 문자 특수 파일인 것 같습니다.

리눅스에서 파일 형식 가져오기

Linux는 파일의 통계 정보를 얻기 위한 stat 시리즈 기능을 제공합니다. stat 함수의 사용 가이드를 보려면 Linux에 manstat를 입력하세요.

linux系统有几种文件类型_linux典型文件系统类型_linux特有的文件系统

linux系统有几种文件类型_linux特有的文件系统_linux典型文件系统类型stat 함수의 두 번째 매개변수는 구조이며, 해당 정의는 다음에서 찾을 수 있습니다.

으아악

linux特有的文件系统_linux系统有几种文件类型_linux典型文件系统类型

linux典型文件系统类型_linux系统有几种文件类型_linux特有的文件系统통계 함수 stat만이 사용자 그룹 ID, 사용자 ID, 파일 크기 등 파일에 대한 다양한 정보를 얻을 수 있음을 알 수 있습니다. st_mode 멤버는 파일 유형과 모드(권한)를 기록합니다. 파일 형식을 얻으려면 다음 매크로를 사용하십시오:

으아악

linux特有的文件系统_linux系统有几种文件类型_linux典型文件系统类型C 언어 예, Linux 파일 형식 가져오기

晓得了stat函数和以上几个宏,编撰C语言程序获取文件的类型是便捷的:

#include 
#include 
#include 
#include 
int main(int argc, char* argv[])
{
 if(argc < 2){
 printf("ntusage:");
 printf("ntt%s filepathn", argv[0]);
 return -1;
 }
 struct stat tmp;
 char* res;
 lstat(argv[1], &tmp);
 if(S_ISREG(tmp.st_mode))
 res = "regular";
 else if(S_ISDIR(tmp.st_mode))
 res = "directory";
 else if(S_ISBLK(tmp.st_mode))
 res = "block";
 else if(S_ISLNK(tmp.st_mode))
 res = "link";
 else if(S_ISFIFO(tmp.st_mode))
 res = "fifo";
 else if(S_ISSOCK(tmp.st_mode))
 res = "socket";
 else
 res = "unknown";
 printf("%s : %sn", argv[1], res);
 return 0;
}
로그인 후 복사

以上代码使用了lstat函数,而不是stat函数,它俩的功能是相同的。惟一不同之处在于处理符号链接时,lstat是将该符号链接直接作为文件处理的,而stat函数则是处理该符号链接指向的文件。

linux特有的文件系统_linux系统有几种文件类型_linux典型文件系统类型

编译以上代码,执行之:

# gcc t6.c
# ./a.out 
 usage:
 ./a.out filepath
# ./a.out ../
../ : directory
# ./a.out t.c
t.c : regular
root@lcc:/lccRoot/C/tmp# ./a.out ../
../ : directory
# ./a.out /dev/log
/dev/log : socket
#
로그인 후 복사

linux典型文件系统类型_linux特有的文件系统_linux系统有几种文件类型

程序接收一个参数,并返回该参数的类型。其他几种类型文件的测试留给读者,在这一过程中可以顺便了解一下linux中的文件组成。

欢迎在评论区一起讨论linux文本编辑器,指责。文章都是手打原创,每晚最扼要的介绍C语言、linux等嵌入式开发,喜欢我的文章就关注一波吧,可以见到最新更新和之前的文章哦。

위 내용은 Linux 시스템의 파일 유형 탐색: 일반 파일, 디렉터리 및 특수 파일의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:itcool.net
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿