저는 Linux C 프로젝트에서 작업 중이며 파일 설명자 작업에 문제가 있습니다.파일 설명 자에 대한 읽기/쓰기 권한 변경
쓰기 권한 만있는 고아 파일 설명자가 있습니다 (파일이 open()되었지만 unlink()되었지만 fd가 여전히 양호). 원본 백업 파일은 (S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH로 생성 된) 전체 권한을 가졌지 만 파일이 O_WRONLY로 열렸습니다. 파일 기술자를 복제하고 사본을 O_RDWR로 변경할 수 있습니까?
psudo 코드 : 사전에
//open orphan file
int fd = open(fname, O_WRONLY, ...)
unlink(fname)
//fd is still good, but I can't read from it
//...
//I want to be able to read from orphan file
int fd2 = dup(fd)
//----change fd2 to read/write???----
감사합니다! - 앤드류
'fcntl (fd, F_SETFL, fcntl (fd, F_GETFL) | O_RDWR))'* 맨 페이지가 특별히 작동하지 않는다는 것을 제외하고는 그것과 같은 것처럼 보입니다. 커널이 불가능할 필요가있는 이유가 있습니다. – aschepler
그럼 왜 그것을 읽으려고한다면 wronly 모드로 열어 보시겠습니까? –
또는 올바른 플래그를 사용하여 다시 열면됩니다. – jweyrich