리눅스 환경에서 vi를 통해서 c언어를 공부중인데요
read 함수는 제대로 작동했을시 읽은 바이트 수를 반환하고
실패하면 -1을 반환한다고 알고있습니다.
그래서 read함수를 while문 안에 조건은
T = read(fd[1],buffer,sizeof(buffer)) >0
이렇게 넣었는데요,
이게 정상작동한다면 , read로 더이상 읽어 올것이 없을때 -1을 반환해서 while문을 탈출 하는게 정상아닌가요?
while문 조건에는 단순한게 printf로 출력 하는 한줄밖에없습니다.
컴파일상에 에러도 없는데.
마치 scanf로 입력 대기중일때 처럼,
아무런 반응도 없이 프로그램이 종료도 안된상태에서 무기한 정지해 있습니다.
gdb에서 bt명령어로 확인해본결과 반복문 조건 부분으로 나오는걸 보니, 안에 있는 출력 부분에서 뭔가 꼬인것같은데.
출력인데 왜 입력대기 같은 상황이 나는걸까요 ?;
만약 다른부분에서 write로 썼는데 그안에 쓰래기 값이나 널값이 들어갔다면,
그 쓰래기 값등이 출력되고 다음단계로 넘어간다거나, 에러가 발생한다거나... 해야하는데
그냥 먹통이 되어버리니 도무지 이유를 모르겠습니다.;
read함수 에서 값을 잘못 읽어온걸까요? 뭔가를 읽긴 읽었다는 소리같은데...
왜 아무것도 출력이 안되는건지 ... ㅠㅠ