Linux 파일 작업

Sep 13, 2018 pm 06:24 PM
linux

이 문서의 예에서는 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 바이트를 읽습니다. 반환 값은 읽은 실제 바이트 수입니다.


  • write() 구현 buf가 가리키는 버퍼의 length 바이트를 파일 설명자 fd가 가리키는 파일에 쓰고 반환 값은 실제로 쓴 바이트 수입니다.

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 값

    r, rb는 읽기 전용 모드로 열립니다.

  • w, wb는 쓰기 전용 모드로 열립니다. 파일이 없으면 파일이 생성되고, 없으면 파일이 잘립니다
  • 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 파일 시스템 디렉토리 구조

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----

    과 같이 자주 수정되는 디렉토리가 이 디렉토리에 배치됩니다. 장치 트리 직관적인 반영. 커널 개체가 생성되면 해당 파일과 디렉터리도 커널 개체 하위 시스템에 생성됩니다.

  • /initrd---시작 프로세스 중 initrd 이미지가 임시 루트 파일 시스템으로 사용되는 경우 해당 이미지에 대해 /linuxrc를 실행하여 실제 루트 파일 시스템을 마운트한 후 원본 RAM 파일 시스템은 /initrd 디렉토리에 매핑됩니다.

  • Linux 파일 시스템 및 장치 드라이버

    관련 권장 사항:

  • linux 상위 디렉터리 권한은 하위 디렉터리 파일 작업에 영향을 미칩니다.

  • Linux 셸 변수 명령을 사용하여 Python 파일 읽기 및 쓰기 작업을 대화식으로 실행하는 방법

위 내용은 Linux 파일 작업의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25 : Myrise에서 모든 것을 잠금 해제하는 방법
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

Linux 터미널에서 Python 버전을 볼 때 발생하는 권한 문제를 해결하는 방법은 무엇입니까? Linux 터미널에서 Python 버전을 볼 때 발생하는 권한 문제를 해결하는 방법은 무엇입니까? Apr 01, 2025 pm 05:09 PM

Linux 터미널에서 Python 버전을 보려고 할 때 Linux 터미널에서 Python 버전을 볼 때 권한 문제에 대한 솔루션 ... Python을 입력하십시오 ...

Docker 환경에서 PECL을 사용하여 확장자를 설치할 때 오류가 발생하는 이유는 무엇입니까? 그것을 해결하는 방법? Docker 환경에서 PECL을 사용하여 확장자를 설치할 때 오류가 발생하는 이유는 무엇입니까? 그것을 해결하는 방법? Apr 01, 2025 pm 03:06 PM

Docker 환경을 사용할 때 Docker 환경에 Extensions를 설치하기 위해 PECL을 사용하여 오류의 원인 및 솔루션. 종종 일부 두통이 발생합니다 ...

램프 아키텍처에서 Node.js 또는 Python 서비스를 효율적으로 통합하는 방법은 무엇입니까? 램프 아키텍처에서 Node.js 또는 Python 서비스를 효율적으로 통합하는 방법은 무엇입니까? Apr 01, 2025 pm 02:48 PM

많은 웹 사이트 개발자는 램프 아키텍처에서 Node.js 또는 Python 서비스를 통합하는 문제에 직면 해 있습니다. 기존 램프 (Linux Apache MySQL PHP) 아키텍처 웹 사이트 요구 사항 ...

APSCHEDULER 타이밍 작업을 MACOS의 서비스로 구성하는 방법은 무엇입니까? APSCHEDULER 타이밍 작업을 MACOS의 서비스로 구성하는 방법은 무엇입니까? Apr 01, 2025 pm 06:09 PM

Apscheduler 타이밍 작업을 MacOS 플랫폼의 서비스로 구성하십시오. Ngin과 유사한 APSCHEDULER 타이밍 작업을 서비스로 구성하려면 ...

Linux 시스템에서 Python 통역사를 삭제할 수 있습니까? Linux 시스템에서 Python 통역사를 삭제할 수 있습니까? Apr 02, 2025 am 07:00 AM

Linux 시스템과 함께 제공되는 Python 통역사를 제거하는 문제와 관련하여 많은 Linux 배포판이 설치 될 때 Python 통역사를 사전 설치하고 패키지 관리자를 사용하지 않습니다 ...

C 언어로 멀티 스레딩을 구현하는 4 가지 방법 C 언어로 멀티 스레딩을 구현하는 4 가지 방법 Apr 03, 2025 pm 03:00 PM

언어의 멀티 스레딩은 프로그램 효율성을 크게 향상시킬 수 있습니다. C 언어에서 멀티 스레딩을 구현하는 4 가지 주요 방법이 있습니다. 독립 프로세스 생성 : 여러 독립적으로 실행되는 프로세스 생성, 각 프로세스에는 자체 메모리 공간이 있습니다. 의사-다일리트 레딩 : 동일한 메모리 공간을 공유하고 교대로 실행하는 프로세스에서 여러 실행 스트림을 만듭니다. 멀티 스레드 라이브러리 : PTHREADS와 같은 멀티 스레드 라이브러리를 사용하여 스레드를 만들고 관리하여 풍부한 스레드 작동 기능을 제공합니다. COROUTINE : 작업을 작은 하위 작업으로 나누고 차례로 실행하는 가벼운 다중 스레드 구현.

Web.xml을 열는 방법 Web.xml을 열는 방법 Apr 03, 2025 am 06:51 AM

Web.xml 파일을 열려면 다음 방법을 사용할 수 있습니다. 텍스트 편집기 (예 : 메모장 또는 문자 메시지)를 사용하여 통합 개발 환경 (예 : Eclipse 또는 NetBeans)을 사용하여 명령을 편집하십시오 (Windows : Notepad Web.xml; Mac/Linux : Open -A Texted web.xml).

See all articles