c 유효하지 열기 및 fopen 기능



매트랩 fopen (3)

가능한 중복 :
C 오픈과 오픈

C 언어에서 open ()과 fopen ()의 차이점은 무엇입니까?


Answer #1

하나는 표준 c 라이브러리 ( fopen )의 일부이므로 호스트 된 모든 c 컴파일러 설정 fopen 라이브러리가 존재할 것으로 기대할 수 있습니다. 이 함수는 <stdio.h> 에있는 함수로 조작 할 수있는 FILE* 을 반환합니다.

다른 ( open )은 c 표준에 명시되지 않은 시스템 호출 / 함수입니다 (그러나 POSIX 표준의 일부라고 생각합니다). 따라서 지원하는 특정 플랫폼에서만 작동한다는 보장이 있습니다. 이것은 파일을 나타내는 int 를 반환하며 read / write 및 기타 유사한 기능을 사용하여 작동 할 수 있습니다.


Answer #2

open ()은 POSIX 표준을 통한 시스템 호출이며, 대부분 UNIX 계열의 운영 체제에서 지원됩니다. 그것은 열리고있는 파일 디스크립터를 나타내는 'int'를 반환한다.

한편, fopen ()은 C 라이브러리에 의해 제공되며, 열려있는 파일을 가리키는 FILE *을 반환합니다.


Answer #3

open() 은 POSIX 호환 운영 체제에서 제공하는 표준화 된 시스템 호출입니다 (대부분의 POSIX와 유사한 운영 체제에도 open() 시스템 호출이 있음). fopen() 은 C 구현 및 / 또는 런타임 라이브러리에서 제공하는 C 라이브러리 함수입니다.

fopen() 은 버퍼 및 / 또는 형식화 된 입 / 출력을 허용하지만 open() 은 일반적으로보다 간단한 IO에 사용됩니다. open() 시스템 호출을 사용하여 fopen() 함수를 구현할 수 있습니다.





c