2012-05-14 7 views
6

파일에서 읽는 것을 처리 할 때 C 프로그래밍에서 두통을 유발하는 것이 있습니다. 파일을 열 수없는 경우C로 읽기 위해 파일을 여는 방법은 무엇입니까?

FILE *fd; 
fd=fopen(name,"r"); // "r" for reading from file, "w" for writing to file 
         //"a" to edit the file 

FD 오른쪽 NULL 반환

나는이 두 방법의 차이를 이해하지? 제가

사용

번째 방법은 다음

int fd; 
fd=open(name,O_RDONLY); 

fd가 될 -1 에러 파일을 여는 경우 발생.

아무에게도이 사실을 설명해 줄 수 있습니까? 미리 감사드립니다 :)

답변

10

fopen()을 사용하면 파일 설명자로 직접 작업하는 것보다 훨씬 더 편리 할 수있는 C stdio 라이브러리를 사용할 수 있습니다. 예를 들어, 파일 설명자가있는 fprintf (...)와 동일한 기본 제공이 없습니다.

저급 I/O가 필요한 경우가 아니라면 stdio 기능이 대다수의 응용 프로그램을 잘 처리합니다. 그것은 더 편리하고 정상적인 경우 정확하게 사용하면 빠릅니다.

+1

그래서 나는 더 편하게 생각하는 것을 사용해야합니다. 맞습니까? fopen() 그 때이다. – appoll

+2

나는 이것이 좋은 방법 일 것이라고 생각한다. 그리고 네, 오류가 발생하면 NULL을 반환합니다. 실패하면 errno를 검사하여 이유를 찾을 수 있습니다. –

관련 문제