다음 예제 코드입니다 : 우리는 루프 동안 사용할 때 작동 방법을 이해 해달라고C 읽기() 및 쓰기()
int nbajt; int buf[];
//we opened file and get descriptor fd
while((nbajt = read(fd, buf, 5)) > 0){
if (write(fd2, buf, nlbajt) == -1){
perror("ERROR");
exit(1);
}
}
. 이 루프가 몇 번 진행될 것인가? (buf의 길이?). nbajt는 1 또는 0 + buf 파일 위치의 값만 가질 수 있습니까? 각 루프 단계가 끝나면 1 자리가 변경됩니까? 그래서 첫 번째 단계에서 우리는 nlbajt = 1을 가지고 buf 첫 번째 위치 char을 취해 fd2에 씁니다. 결국 우리는 nlbajt==0
을 가지므로 파일의 끝을 의미합니까? 내가 틀렸다는 것을 확인해 주셔서 고맙게 생각합니다. 나의 주요 관심사는 nbajt 가치가 어떻게 변하는가입니다. 그것은 이러한 태도에 대한 diffrent 얼마나 :
int read( int handle, void *buffer, int nbyte);
그것은 바이트 수를 성공적으로 읽어 반환
nbajt = read(fd, buf, 5));
write(fd2, buf, sizeof(a));
인자와 반환 값을 이해할 수 있도록'read()'에 대한 문서를 읽었습니까? –
나는 남자를 사용하고 있었다. 하지만 우리가 루프를 사용하지 않을 때만 나는 그것을 이해합니다. 읽은 바이트 수를 반환합니다. 나는 buf를 위해 거기에 변화를 만들었다. – user3402584