C 언어의 fopen()함수 와 fdopen()함수 에 대한 자세 한 설명
3084 단어 C 언어
헤더 파일:
#include <stdio.h>
fopen()은 파일 을 지정 한 방식 으로 여 는 데 자주 사용 되 는 함수 입 니 다.원형 은 다음 과 같 습 니 다.
FILE * fopen(const char * path, const char * mode);
[매개 변수]path 는 경 로 를 포함 하 는 파일 이름 이 고 mode 는 파일 을 여 는 방식 입 니 다.mode 는 다음 과 같은 몇 가지 방식 이 있 습 니 다.
POSIX 시스템 에 서 는 Linux 를 포함 하여 b 문 자 를 무시 합 니 다.fopen()에서 만 든 새 파일 은 S 가 있 습 니 다.IRUSR|S_IWUSR|S_IRGRP|S_IWGRP|S_IROTH|S_IWOTH(0666)권한,이 파일 권한 도 umask 값 을 참고 합 니 다.
바 이 너 리 와 텍스트 모드 의 차이 점:
windows 시스템 에서 텍스트 모드 에서 파일 은'\r'로 줄 을 바꾼다.텍스트 모드 로 파일 을 열 고 fputs 등 함수 로 줄 바 꿈 문자''를 쓰 면 함수 가 자동 으로'''앞 에'\r'를 추가 합 니 다.실제 파일 에 기 록 된 것 은'\r'입 니 다.
클래스 유 닉 스/Linux 시스템 의 텍스트 모드 에서 파일 은''로 줄 을 바 꿉 니 다.그래서 Linux 시스템 에 서 는 텍스트 모드 와 이 진 모드 에서 다 르 지 않 습 니 다.
더 많은 정 보 를 보 려 면:C 언어 fopen()에서 텍스트 파일 과 바 이 너 리 파일 의 차 이 를 엽 니 다.
일부 C 컴 파일 시스템 은 이러한 기능 을 완전히 제공 하지 않 을 수 있 습 니 다.어떤 C 버 전 은'r+','w+','a+'를 사용 하지 않 고'rw','wr','ar'등 을 사용 합 니 다.독자 들 은 사용 하 는 시스템 의 규정 에 주의 하 십시오.
[반환 값]파일 이 순조롭게 열 리 면 이 흐름 을 가리 키 는 파일 포인터 가 되 돌 아 옵 니 다.파일 을 열 수 없 으 면 NULL 로 돌아 가 오류 코드 를 errno 에 저장 합 니 다.
메모:일반적으로 파일 을 열 면 파일 을 읽 거나 쓰 는 동작 을 합 니 다.파일 을 여 는 데 실패 하면 다음 읽 기와 쓰기 동작 도 순조롭게 진행 되 지 않 기 때문에 fopen()이후 에 잘못된 판단 과 처 리 를 하 십시오.
파일 작업 이 끝 난 후 파일 을 닫 아야 합 니 다.그렇지 않 으 면 파일 이 차지 하 는 메모리 가 유출 되 고 다음 에 파일 에 접근 할 때 문제 가 발생 할 수 있 습 니 다.
파일 이 닫 힌 후 파일 포인 터 를 비 워 야 합 니 다.이렇게 하면 유리 포인터 가 발생 하 는 것 을 방지 하고 전체 프로젝트 에 불필요 한 번 거 로 움 을 초래 할 수 있 습 니 다.예 를 들 어 fp=NULL.
[인 스 턴 스]파일 을 열 고 이 파일 을 닫 습 니 다.
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int main()
{
FILE* fstream;
char msg[100] = "Hello!I have read this file.";
fstream=fopen("test.txt","at+");
if(fstream==NULL)
{
printf("open file test.txt failed!
");
exit(1);
}
else
{
printf("open file test.txt succeed!
");
}
fclose(fstream);
return 0;
}
C 언어 fdopen()함수:파일 설명 어 를 파일 포인터 로 변환헤더 파일:
#include <stdio.h>
정의 함수:
FILE * fdopen(int fildes, const char * mode);
함수 설명:fdopen()은 인자 fildes 의 파일 설명 어 를 해당 하 는 파일 포인터 로 변환 한 후 되 돌려 줍 니 다.매개 변수 mode 문자열 은 파일 포인터 의 흐름 형 태 를 대표 합 니 다.이 형 태 는 원래 파일 설명 어 읽 기 쓰기 모드 와 같 아야 합 니 다.mode 문자열 형식 에 대해 서 는 fopen()을 참고 하 십시오.
반환 값:변환 에 성 공 했 을 때 이 흐름 을 가리 키 는 파일 지침 을 되 돌려 줍 니 다.실 패 했 을 때 NULL 을 되 돌려 주 고 오류 코드 를 errno 에 저장 합 니 다.
범례
#include <stdio.h>
main()
{
FILE * fp = fdopen(0, "w+");
fprintf(fp, "%s
", "hello!");
fclose(fp);
}
집행 하 다.
hello!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
C 언어 구현 천둥 제거 게임 상세 정보먼저 작은 메뉴를 표시하고 게임을 할지 여부를 선택하십시오.사용자가 종료를 선택하면 프로그램 실행이 끝나고, 사용자가 게임을 선택하면 지뢰 제거 위치 좌표를 입력하라는 메시지가 표시됩니다.사용자가 입력한 좌표가 바둑...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.