[유닉스/리눅스] 코드 에러 오류좀 확인해주세요 ㅠㅠㅠ

ek1249의 이미지

#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가 자꾸 똑같이 나와요 ㅠㅠ
이게 무슨오류일까요...어디가 잘못된거죠ㅠㅠ 위에 인클루드 짤려서 보이실수도있는데 정상적으로 입력된거예요!!

File attachments: 
첨부파일 크기
Image icon 1.jpg84.82 KB
Image icon 2.jpg22.07 KB
세벌의 이미지

include 잘리지 않게 하려면 https://kldp.org/filter/tips/1#filter-bbcode-0 읽어보셔요.
에러 원인에 대해서는 다른 분이 답 글 달아주실 겁니다.

Lipi의 이미지

혹시 한번 실행되어 이미 새로운 내용(UNix hi\n)이 해당 파일에 쓰여져서 읽어오는 파일을 다른 내용으로 바꾸지 않고 계속 실행해서 동일한 내용의 before와 after가 나오는 건 아닌가요?
제가 실행해 보니 잘 동작하는 군요.
https://gist.github.com/LipiLee/a1257176a32bdb02900d