![UNIX/POSIX 시스템 호출 이름을 해독하기 어려운 이유는 무엇입니까?](https://linux55.com/image/68648/UNIX%2FPOSIX%20%EC%8B%9C%EC%8A%A4%ED%85%9C%20%ED%98%B8%EC%B6%9C%20%EC%9D%B4%EB%A6%84%EC%9D%84%20%ED%95%B4%EB%8F%85%ED%95%98%EA%B8%B0%20%EC%96%B4%EB%A0%A4%EC%9A%B4%20%EC%9D%B4%EC%9C%A0%EB%8A%94%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F.png)
and 대신 and time
같은 이해하기 어려운 시스템 호출 이름을 사용하는 이유는 아마도 Unix 및 에 더 적합할 것입니다 . 그러면 다음 요점으로 넘어가겠습니다: 왜 누군가가 읽을 수 있도록 낙타 대문자나 최소한 밑줄도 없는 것을 원하는 걸까요? 물론 호출에는 더 많은 문자가 포함되지만 코드 가독성이 더 중요하다는 것은 모두가 알고 있는 사실입니다.creat
getCurrentTimeSecs
createFile
get_current_time_secs
create_file
cfsetospeed
답변1
이는 당시 기술적인 한계 때문이었습니다. POSIX 표준은 1970년에 탄생한 UNIX를 참조하여 1980년대에 만들어졌습니다. 일부 C 컴파일러에서는 시간 제한 식별자를 6~8자로 지정하여 변수 및 함수에 대한 표준 이름 길이를 설정합니다.
관련 질문:
답변2
dr_의 말이 맞습니다. 하지만 가용성이라는 또 다른 이유가 있습니다. 과거에는 키보드만큼 편안한 타이핑 도구가 없었습니다. 운이 좋다면 구식 타자기와 비슷한 것을 갖게 될 것입니다. 운이 좋지 않다면 실제 물리적 작업이 필요한 시스템을 다루거나(예: "키"를 누르는 데 많은 힘이 필요함) 수동으로 카드에 구멍을 뚫어야 합니다.
이는 6~8자 제한 내에서도 명령을 가능한 한 짧게 유지하려고 한다는 의미입니다. 그렇기 때문에 ls
대체 list
및 creat
대체가 있습니다 create
. 그 시대의 코드는 a
, x
그리고 i
물론 친구와 같은 변수로 가득 차 있었습니다 x2
. 타이핑은 많은 작업입니다. 오늘날에는 listIndex
예전의 "타이핑"보다 적은 에너지 로 타이핑하며 i
속도도 거의 느리지 않습니다(특히 자동 완성과 같은 추가 기술을 사용하면 더욱 그렇습니다).
진짜 질문은 - 인기가 떨어지고 있음에도 불구하고 왜 그렇게 많은 Unix 관용구가 여전히 존재하는가입니다.
답변3
다른 답변 외에도 Unix는 훨씬 더 장황한 명명 규칙을 사용하는 Multics, CTSS 및 기타 최신 운영 체제에 대한 반응으로 개발되었다는 점을 지적하고 싶습니다. 다음 운영 체제를 경험할 수 있습니다.http://www.multicians.org/devdoc.html. 예를 들어,http://www.multicians.org/mspm-bx-1-00.htmlchange_name
파일 이름을 바꾸는 명령을 제공합니다 . Unix mv
.
또한 시스템 호출 이름이 매우 짧은 주된 이유는~을 고집하다이전 버전과 호환됩니다. 예 를 gettimeofday
들어 .clock_gettime
time
(오늘날에도 for 루프 whateverIndex
대신 i
인덱스를 사용하면 자동 코드 검토가 실패하게 됩니다.내 거책;-)
답변4
Dennis Ritchie는 Fortran에 필요하지 않은 링커 기능에 의존하지 않도록 C에 제한을 설정했습니다. 따라서 외부 이름은 6자로 제한됩니다.