이 문서의 예에서는 Python 파일 읽기 및 쓰기 작업과 Linux 셸 변수 명령을 대화형으로 실행하는 방법을 설명합니다. 참고할 수 있도록 모든 사람과 공유하세요. 자세한 내용은 다음과 같습니다.
파일 작업 관련 시스템 호출
Create
int creat(const char *filename, mode_t mode);
매개변수 mode는 새로 생성된 파일에 대한 액세스 권한을 지정하며, umask와 함께 파일의 최종 권한(mode&umask)을 결정합니다. 여기서 umask는 파일이 생성될 때 제거해야 하는 일부 액세스 권한을 나타냅니다. 호출하는 함수는 int umask(int newmask)입니다.
Open
int open(const char *pathname, int flags);
pathname은 열려고 하는 파일 이름입니다(경로 이름 포함, 기본값은 현재 경로 아래에 있음)
flags open 플래그
O_RDONLY 읽기 전용 모드로 파일 열기
O_WRONLY 파일을 쓰기 전용 모드로 열기
O_RDWR 읽기-쓰기 모드로 파일 열기
O_APPEND 추가용 파일 열기
O_CREAT 파일 만들기
O_EXEC O_CREAT를 사용하고 파일 이미 존재하면 오류가 발생합니다
O_NOBLOCK 비차단 방식으로 파일 열기
O_TRUNC 파일이 이미 존재하는 경우 파일 내용 삭제
int open (const char * 경로명 , int 플래그, mode_t 모드)
플래그가 O_CREATE인 경우 모드 플래그를 지정하여 파일 액세스 권한을 나타냅니다.
S_IRUSR 사용자가 읽을 수 있음
S_IWUSR 사용자가 쓸 수 있음
S_IXUSR 사용자 실행 가능
S_IRWXU 사용자 읽기, 쓰기, 실행 가능
S_IRGRP 그룹 읽기 가능
S_IWGRP 그룹 쓰기 가능
S_IXGRP 그룹 실행 가능
S_IRWXG 그룹 읽기, 쓰기, 실행 가능
S_IROTH 다른 사람들도 읽을 수 있음
S_IWOTH 기타 사용자는 쓰기 가능
S_IXOTH 기타 사용자는 실행할 수 있음
S_IRWXO 기타 사용자는 읽기, 쓰기, 실행 가능
S_ISUID 세트 사용자의 실행 ID
S_ISGID 그룹의 실행 ID 설정
mode 플래그는 숫자를 사용하여 파일 권한을 나타낼 수도 있습니다.
각 숫자는 1(실행 권한), 2( 쓰기 권한), 4(읽기 권한), 0(없음) 또는 이들 값의 합계입니다.
첫 번째 숫자는 사용자 ID 설정
두 번째 숫자는 그룹 ID 설정
세 번째 숫자는 사용자 고유 권한
네 번째 숫자는 그룹의 권한을 나타냅니다
다섯 번째 숫자는 다른 사람의 권한을 나타냅니다
open("test", O_CREAT, 10705);
위 진술은 동등하다 대상:
open("test", O_CREAT, S_IRWXU | S_IROTH | S_IXOTH | S_ISUID );
읽기 및 쓰기
int read(int fd, const void *buf, size_t length);
int write(int fd , const void *buf, size_t length);
매개변수 fd 파일 설명자, buf는 버퍼에 대한 포인터, length는 버퍼의 크기(바이트 단위), 반환 값은 실제로 읽고 쓴 바이트 수입니다. .
read()는 파일 설명자 fd가 지정한 파일에서 buf가 가리키는 버퍼로 length 바이트를 읽습니다. 반환 값은 읽은 실제 바이트 수입니다.
Positioning
임의의 파일에 대해 읽고 쓸 위치를 무작위로 지정할 수 있습니다.
int lseek(int fd, offset_t offset, int whence);
lseek()는 파일 읽기 및 쓰기 포인터를 이동합니다. whence(음수일 수 있음) 바이트를 기준으로 한 오프셋입니다. 작업이 성공하면 파일 헤더를 기준으로 한 파일 포인터의 위치가 반환됩니다.
매개변수 whence는 다음 값을 사용할 수 있습니다.
SEEK_SET: 파일의 시작 부분을 기준으로 합니다.SEEK_CUR: 상대 파일 읽기 및 쓰기 포인터의 현재 위치입니다.
SEEK_END: 파일의 끝을 기준으로 합니다.
Close
int close(int fd);
C 라이브러리 함수 파일 작업 - 특정 운영 체제 플랫폼과 무관
생성 및 열기
FILE *fopen(const char *path, const char *mode );
fopen()은 지정된 파일 filename 열기를 구현합니다. 여기서 mode는 열기 모드입니다. Linux 시스템은 바이너리 파일과 텍스트 파일을 구분하지 않습니다.
mode 값
a, ab는 추가 모드로 열립니다. 파일이 없으면 파일을 생성하세요
r+, r+b, rb+ 읽기 및 쓰기로 열기
w+, w+b, wh+ 읽기로 열기 그리고 Open을 씁니다. 파일이 없으면 새 파일이 생성되고, 그렇지 않으면 파일이 잘립니다.
a+, a+b, ab+ 읽기 및 추가가 가능합니다. 파일이 없으면 새 파일을 만듭니다
읽고 쓰기
int fgetc(FILE *stream);
int fputc(int c, FILE *stream);
char *fgets(char *s , int n , FILE *stream);
int fputs(const char *s, FILE *stream);
int fprintf(FILE *stream, const char *format, ...);
int fscanf(FILE *stream, const char *format , ...);
size_t fread(void *ptr, size_t size, size_t n, FILE *stream);
size_t fwrite(const void *ptr, size_t size, size_t n, FILE *stream);
int fsetpos(FILE *stream, fpos_t *pos);
nt fsetpos(FILE *stream, const fpos_t *pos);
int fseek(FILE *stream, long offset, int whence);
fread()는 읽기를 구현합니다. n개의 필드를 스트림하고, 각 필드는 size 바이트이고, 읽은 필드는 ptr이 가리키는 문자 배열에 들어가고, 읽은 실제 필드 수를 반환합니다.
write()는 버퍼 ptr이 가리키는 배열에서 n개의 필드를 스트림으로 작성하는 것을 구현합니다. 각 필드의 길이는 바이트 크기이며 실제로 작성된 필드 수를 반환합니다.
Close
int fclose (FILE *stream);
Linux 파일 시스템 디렉토리 구조
/bin----가장 자주 사용되는 기본 명령을 저장합니다. 초 ls, cp, mkdir 등의 파일은 모두 실행 가능합니다. /dev- ---장치 파일 저장 디렉터리, 응용 프로그램은 이러한 파일을 읽고, 쓰고, 제어하여 실제 장치에 액세스할 수 있습니다.
/etc----사용자 계정 및 비밀번호 구성 파일과 같이 시스템 관리에 필요한 구성 파일 및 하위 디렉터리입니다.
/home----일반 사용자의 홈 디렉터리입니다. 일반적으로 디렉터리 이름은 사용자 계정의 이름을 따서 지정됩니다.
/lib----라이브러리 파일 저장 디렉터리, 시스템의 가장 기본적인 동적 링크 공유 라이브러리로 Windows의 DLL 파일과 유사합니다.
/lost+found----일반적으로 시스템이 예기치 않게 충돌하거나 컴퓨터가 예기치 않게 종료되면 일부 파일 조각이 생성되어 여기에 배치됩니다.
/mnt----다른 파일 시스템을 임시로 마운트하는 것이 편리합니다. 예를 들어 광 드라이브가 /mnt/에 마운트된 경우 광 드라이브의 내용을 볼 수 있습니다. 이 디렉토리를 입력하여
media----U 디스크, 광학 드라이브 등과 같은 일부 장치를 자동으로 식별하고 이 디렉토리에 마운트합니다.
/opt----호스트에 추가 소프트웨어가 설치되는 디렉터리
/proc----운영 체제가 실행될 때 프로세스 및 커널 정보(예: CPU, 하드 디스크 파티션, 메모리 정보 등)가 여기에 저장됩니다. 시스템 메모리의 매핑으로 메모리에 존재하며 이 디렉터리에 직접 접근하여 시스템 정보를 얻을 수 있습니다.
/root---최고 권한을 가진 사용자의 홈 디렉터리
/sbin----최고 권한을 가진 사용자의 실행 명령이 있는 디렉터리 임시 파일을 저장하려면 이 디렉토리
/tmp----에서 명령을 실행하세요.
/usr------시스템 응용 프로그램 및 파일(예: 명령 및 도움말 파일)이 프로그램을 저장하는 디렉터리로, Windows의 프로그램 파일 디렉터리와 유사합니다.
/var------커널의 로그 파일
/sys----
과 같이 자주 수정되는 디렉토리가 이 디렉토리에 배치됩니다. 장치 트리 직관적인 반영. 커널 개체가 생성되면 해당 파일과 디렉터리도 커널 개체 하위 시스템에 생성됩니다.관련 권장 사항:
위 내용은 Linux 파일 작업의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!