낮은 수준의 I/O (읽기 (쓰기) 쓰기 만 허용하는 작업을하고 있습니다.), lseek())뿐만 아니라 perror().하위 수준의 CI/O : 한 파일에서 읽고 다른 파일에 쓸 때 무한 루프가 발생합니다.
올바른 권한으로 파일을 밖으로 및 밖으로 파일을 열 수 있었지만 내가 출력 할 때 파일 내용에 무한 루프가 나타납니다. 내 코드에서 트래핑 일부 오류를 제거하고 당신이 변수가 초기화 문가 포함되어 가정 할 수있다 ... 아래 니펫을
void *buf = malloc(1024);
while((n = read(in, buf, 1024)) > 0){
if(lseek(in, n, SEEK_CUR) == -1){
perror("in file not seekable");
exit(-1);
}
while((m = write(out, buf, n)) > 0){
if(lseek(out, m, SEEK_CUR) == -1){
perror("out file not seekable");
exit(-1);
}
}
if(m == -1){ perror("error writing out"); exit(-1); }
}
if(n == -1){ perror("error reading in"); exit(-1); }
를 참조하십시오.
지금까지 어떤 디버깅을 했습니까? 예를 들어 어떤 루프가 바깥 루프 또는 내부 루프에 걸렸습니까? –
당신이하고있는 일은 같은 줄을 반복적으로 쓰는 것이라고 생각합니다. 'while'을'if'에'write' 주위로 변경해보십시오. – twain249
내부 루프에 걸렸습니다. 저쪽 너머에는 다른 것을 많이 말할 수 없습니다. – Dan