지식인을 10년 넘게 해오면서 용어 정리가 묘하게 되어 있는 녀석이 있는데 그중 하나가 포함되는 질문이였다.
유닉스/리눅스 프로그래밍 이라고 하는 책들이 워낙 많아서 그런지 유닉스/리눅스 = C 언어 이런 묘한 공식이 있는 것 같다.
물론 개떡같이 말해도 찰떡같이 알아들을 수 있지만, 프로세스와 프로세서, 프로그램이 무엇인지를 말해야 할때에는
개떡같이 말해선 안되는 것 같다.
질문
if((n=read(fd,buf,BUFSIZ))==-1){
perror("read");
exit(1);
답변
일단 질문 제목은 "C 언어 해석" 이 맞습니다.
// read 함수를 사용하는데 그 값을 변수 n 에 저장할 것입니다.
// 앞서 fd 로 open 을 했을텐데, 그 값을 fd 에 저장했을 겁니다.
// fd 즉 파일이 열린 주소값을 BUFSIZ 라는 변수의 크기만큼 읽은 후에 buf 라는 변수에 시작주소를 저장합니다.
// 그런데 만약 read 함수가 어떠한 이유에서 실패하게 된다면 즉 read 로 인해 반환되는 결과값이 -1 일때
== -1 이랑 같다는 의미는 함수가 실패하였음을 의미
// -1 일때 perror 를 통해 read 에러가 발생하였음을 콘솔에 출력하고, 프로그램을 종료 함 exit(1)
if((n=read(fd,buf,BUFSIZ))==-1){
perror("read");
exit(1);
https://kin.naver.com/qna/detail.naver?d1id=1&dirId=10302&docId=402844230&page=1#answer1
'IT > 네이버지식인' 카테고리의 다른 글
[지식인]리눅스 tar 옵션 질문 (0) | 2022.07.15 |
---|---|
[지식인] 코딩 질문 (0) | 2022.06.23 |
[지식인] Linux Ansible Playbook 질문 (0) | 2022.06.22 |
[지식인]RED HAT 리눅스 8.6버전 무료질문 (0) | 2022.06.10 |
[지식인] 좀비 피시 치료법 (0) | 2022.06.01 |