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는 각각 소유자 쓰기와 소유자 읽기가 가능하도록 파일의 권한을 설정한다.
'C > 공개글' 카테고리의 다른 글
배열의 포인터 변수를 선언하는 법 (0) | 2013.05.12 |
---|---|
static 함수 (0) | 2013.05.03 |
리틀엔디안에 따른 순서의 문제 (0) | 2013.04.14 |
시프트 연산자(shift operation) (0) | 2013.04.13 |
왜 싱글포인터의 주소값은 더블포인터로 받아야 할까? (내생각) (0) | 2013.04.13 |