게시판 즐겨찾기
편집
드래그 앤 드롭으로
즐겨찾기 아이콘 위치 수정이 가능합니다.
본삭금) 리눅스 환경에서 read 함수 질문입니다
게시물ID : programmer_7059짧은주소 복사하기
작성자 : 건트
추천 : 0
조회수 : 1265회
댓글수 : 10개
등록시간 : 2014/12/11 00:12:16
옵션
  • 본인삭제금지
리눅스 환경에서 vi를 통해서 c언어를 공부중인데요

read 함수는 제대로 작동했을시 읽은 바이트 수를 반환하고

실패하면 -1을 반환한다고 알고있습니다.

그래서 read함수를 while문 안에 조건은

T = read(fd[1],buffer,sizeof(buffer)) >0

이렇게 넣었는데요, 

이게 정상작동한다면 , read로 더이상 읽어 올것이 없을때 -1을 반환해서 while문을 탈출 하는게 정상아닌가요?

while문 조건에는 단순한게 printf로 출력 하는 한줄밖에없습니다.

컴파일상에 에러도 없는데.

마치 scanf로 입력 대기중일때 처럼, 

아무런 반응도 없이 프로그램이 종료도 안된상태에서 무기한 정지해 있습니다.

gdb에서 bt명령어로 확인해본결과 반복문 조건 부분으로 나오는걸 보니, 안에 있는 출력 부분에서 뭔가 꼬인것같은데.

출력인데 왜 입력대기 같은 상황이 나는걸까요 ?;

만약 다른부분에서 write로 썼는데 그안에 쓰래기 값이나 널값이 들어갔다면,

그 쓰래기 값등이 출력되고 다음단계로 넘어간다거나, 에러가 발생한다거나... 해야하는데

그냥 먹통이 되어버리니 도무지 이유를 모르겠습니다.;

read함수 에서 값을 잘못 읽어온걸까요? 뭔가를 읽긴 읽었다는 소리같은데...

왜 아무것도 출력이 안되는건지 ... ㅠㅠ


꼬릿말 보기
전체 추천리스트 보기
새로운 댓글이 없습니다.
새로운 댓글 확인하기
글쓰기
◀뒤로가기
PC버전
맨위로▲
공지 운영 자료창고 청소년보호