왜 f2 가 제대로 출력되지 않는지 알고 싶습니다.

-@Naver의 이미지

int main() {
    int x, x1;
    x=open(“f1”, O_RDONLY, 00777);
    x1=open(“f2”, O_WRONLY|O_CREAT|O_TRUNC,00777);
    char buf[512];
    int cnt=0;
    for(;;){
       y=read(x,buf,1);
       if (y==0) break;
       cnt++;
    }
    write(x1, buf, cnt);
    return 0;
}

cat f2 사용시 왜 출력되지 않나요?

김정균의 이미지

아래 코드가 이상하지 않나요?

  y = read(x, buf, 1);

이 코드가 뻘짓을 하고 있는 듯 싶은데 :) buf[0] 에 1byte를 계속 덮어쓰기를 하고 있네요