open으로 한 파일에 데이터를  쓰고, 다시 같은 파일을 똑같이 open의 읽기모드로 열면 에러가 발생한다.


ex)


open("exam.txt", O_CREAT | O_WRONLY | O_TRUNC);    // 파일을 쓰기모드로 오픈


......


open("exam.txt", O_RDONLY);    // 파일을 읽기모드로 오픈


.....



파일을 쓰기모드로 열었으니까 당연히 읽기모드로는 오픈이 안되는 것.


해결방법은 간단하다. 


open 함수의 세번째 인자에 파일 접근 권한과 관련된 옵션을 주면 된다.


open("exam.txt", O_CREAT | O_WRONLY | O_TRUNC, S_IWUSR | S_IRUSR);



S_IWUSR와 S_IRUSR는 각각 소유자 쓰기와 소유자 읽기가 가능하도록 파일의 권한을 설정한다.






Posted by huammmm1
,