@ fprintf와 fseek 긴급 질문입니다...@

익명 사용자의 이미지

fopen을 통해 temp라는 파일을 만들었는데 내용이 다음과 같거든요?

Num math eng
1 10 10
2 30 40
3 50 90

머 이런식인데요 fseek를 이용해서 저기 2번의 math를 50으로 고쳐쓰고
싶거든요? 그냥 fprintf로 덮어쓸라그러는데..

fseek(infile, 0L, SEEK_SET)
으로 할라니까 num math같있는 라인이 지워지구 해서 도저히 어떻게 하는
질 모르겠습니다 고수님들 쪼금만 알려주세요 흑흑

익명 사용자의 이미지

무엇을 어떻게 하려는지 잘 이해가 안되는데 문제가 있다는 소스 코드를 보여주시는게 어떨까요?

익명 사용자의 이미지

#include
#include
#include
#include
#include
#include
#include

int main(int argc,char **argv) {
int fd,offset = 0;
char buffer[256],*ptr;

if (argc != 2 ){
printf("Usage %s \n",*(argv));
return 0;
}

if ( (fd = open(*(argv+1),O_RDWR | O_SYNC)) < 0) {
perror("open");
return -1;
}

read(fd,buffer,sizeof(buffer));
ptr = buffer;
while( strncmp(ptr,"30",2) ) {
ptr++;offset++;
}
lseek(fd,offset,SEEK_SET);

write(fd,"50",2);

close(fd);

return 0;
}