파일 행 역순 출력 프로그램 질문드립니다..
#include
#include
#include
#include
int main(int argc,char *argv[])
{
int fd1,fd2;
int loc;
int i=0,j;
char buf[512];
char tmp;
if((fd1=open(argv[1],O_RDONLY)) == -1)
{
perror(argv[1]);
exit(1);
}
if ((fd2=open(argv[2],O_WRONLY|O_CREAT|O_TRUNC,0777)) == -1)
{
perror(argv[2]);
exit(1)
}
if (loc=lseek(fd1, -sizeof(char), SEEK_END)<0) {
printf (“lseek() failed\n”);
return 1;
}
While (loc>=0) {
read (fd1, &tmp, sizeof(char));
buf[i++]=tmp;
if (tmp == ‘\n’) {
for (j=i-2; j>=0; j--) {
write (fd2, &(buf[j]), sizeof(char));
}
write(fd2, “\n”, sizeof(char));
i=0;
}
loc=lseek(fd1, -2*sizeof(char), SEEK_CUR);
}
close(fd1);
close(fd2);
}
lseek를 이용하여 텍스트 파일의 줄을 역순으로 출력하는 프로그램을 작성하고있는데
마지막줄에서 두번쨰 줄까지만 출력되고 맨첫번째 줄이 출력되지않네요...
어디에 오류가있는지 질문 드립니다...
그냥 디버깅을
그냥 디버깅을 한줄한줄 하시면서 Local 확인하시면 간단하게 해결 가능하실듯
code 는 code 태그 안에.
소스코드 는 code 태그 안에 넣어 주쇼.
세벌 https://sebuls.blogspot.kr/
댓글 달기