open()은 새 파일 설명자 posix를 반환합니다.

open()은 새 파일 설명자 posix를 반환합니다.

posix에서 open()의 반환 값을 설정해야 합니다. Linux 매뉴얼 페이지에 명시된 대로 "새 파일 설명자"를 반환하는 방법:

반환 값

 open(), openat(), and creat() return the new file descriptor, or -1
 if an error occurred (in which case, errno is set appropriately).

편집: Goldilocks님, 감사합니다! 나는 올바른 방향을 바라보고 있지 않았습니다. 내가 하고 있는 일은 이 시스템 호출의 반환 값을 수정하는 것입니다. 분명히 잘못된 것을 반환합니다.

답변1

파일을 열려면 다음과 같은 구조를 사용할 수 있습니다.

int fd;
if ((fd = open(path, flags)) < 0) {
    /* An error occurred, the reason is in errno */
    int _errno = errno; /* Save errno value */
    fprintf(stderr, "Failed opening file '%s': %s\n", path, strerror(_errno));
    return;
}
/* The file was successfully opened */

따라서 반환 값은 일반적으로 파일 설명자 하나만 가집니다. 이면 -1오류가 발생한 것입니다. 발생하는 오류는 변수에 저장됩니다(소스 파일에 포함하여 얻음 errno).errno.h

관련 정보