[유닉스/리눅스] 코드 에러 오류좀 확인해주세요 ㅠㅠㅠ
글쓴이: ek1249 / 작성시간: 금, 2016/03/25 - 9:30오후
#include <sys/types.h> #include <unistd.h> #include <fcntl.h> int main() { int filedes; ssize_t nread; off_t newpos; char buffer[1024]; char content[] = "UNix hi\n"; filedes = open("temp1.txt", O_RDWR); nread = read(filedes,buffer,1024); printf("before : %s",buffer); newpos = lseek(filedes, (off_t)0, SEEK_SET); write(filedes, content, strlen(content)); newpos = lseek(filedes, (off_t)0,SEEK_SET); nread = read(filedes,buffer,1024); printf("after :%s",buffer); close(filedes); }
=>이미 존재하는 파일로 덮어쓰기를 하려고 하는데요 temp1.txt.파일에 있는 내용들을 일단 먼저 다 출력한다음, lseek사용하여 포인터 옮긴다음 content문을 앞 내용에 덮어쓴 변화된모습을 출력하려하는데
결과값이 before랑 after가 자꾸 똑같이 나와요 ㅠㅠ
이게 무슨오류일까요...어디가 잘못된거죠ㅠㅠ 위에 인클루드 짤려서 보이실수도있는데 정상적으로 입력된거예요!!
Forums:
include 잘리지 않게 하려면
include 잘리지 않게 하려면 https://kldp.org/filter/tips/1#filter-bbcode-0 읽어보셔요.
에러 원인에 대해서는 다른 분이 답 글 달아주실 겁니다.
세벌 https://sebuls.blogspot.kr/
temp1.txt 파일에 이미 새로운 내용으로 채워져서 그런건 아닌지?
혹시 한번 실행되어 이미 새로운 내용(UNix hi\n)이 해당 파일에 쓰여져서 읽어오는 파일을 다른 내용으로 바꾸지 않고 계속 실행해서 동일한 내용의 before와 after가 나오는 건 아닌가요?
제가 실행해 보니 잘 동작하는 군요.
https://gist.github.com/LipiLee/a1257176a32bdb02900d
댓글 달기