C 언어의 fopen()함수 와 fdopen()함수 에 대한 자세 한 설명

3084 단어 C 언어
C 언어 fopen()함수:파일 을 열 고 파일 지침 을 되 돌려 줍 니 다.
헤더 파일:

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

좋은 웹페이지 즐겨찾기