2011-10-02 5 views
1

GNU/Linux 배포판에서 보통 POSIX c99 utility이 구현되는 것에 대해 궁금합니다.일반적으로 Linux 시스템에서 구현되는 POSIX c99 유틸리티는 무엇입니까?

실제로 이것은 각 배포판의 문서에서 대답해야 할 질문이지만, openSUSE 11.4 설치의 맨 페이지와 Ubuntu's manpage은 기본적으로 컴파일러가 실제로 무엇인지 지정하지 않고 POSIX 표준과 비슷한 정보를 나열합니다. 즉, GCC, Clang 또는 다른 것).

누구나 일반적인 관행을 알고 있습니까? 내 생각 엔 gcc의 -std = c99 옵션에 대한 래퍼 (wraper)인데, 아마도 -pedantic이 C99 표준과보다 밀접하게 부합하도록 추가되었을 것입니다.

+0

c99가 POSIX c99가해야 할 일을 정확하게 수행한다고 생각한다면, gcc인지 또는 그 내부의 clang인지는 왜 신경니까? – Jens

+0

@Jens : 표준 준수로 컴파일러를 선택하지 마십시오. 느린 코드가 생성되면 C99 코드를 컴파일 할 수있는 다른 것을 찾아야합니다. –

+0

@lasmans : 이것이 사실일지도 모르지만, 나는 질문에 적용되지 않는다고 생각한다. (컴파일러에 의한 코드의 속도는 많은 옵션에 의존 할 수 있기 때문에 흑백 응답도 아니다). 이것이 내가 Quantumboredom의 근본적인 동기를 묻는 이유입니다. 배포판에 의한 c99 컴파일러 공급 업체 통계보다 더 많은 정보가 필요합니다. 그 자체로 오히려 쓸모없는 정보입니다. – Jens

답변

2

일반적으로 환경 변수 CC을 기반으로 컴파일러를 선택할 수도 있지만 실제로는 gcc -std=c99의 래퍼입니다. file /usr/bin/c99을 수행하고 쉘 스크립트 인 경우이를 읽거나 심볼릭 링크 인 경우 가리키는 위치를 확인하여 직접 확인할 수 있습니다.

+0

내 시스템 (openSUSE 11.4)에서는 GNU/Linux 용 "/ usr/bin/c99 : ELF 64 비트 LSB 실행 파일, x86-64, 버전 1 (SYSV), 동적 링크 (공유 라이브러리 사용) 2.6.4, 박탈 ". 나도 그것이 symlink 나 스크립트가 될 것으로 기대하고 있었다. vim을 사용하여 실행 파일을 열면 다음과 같이 표시됩니다. "B^@ malloc^@ - std = c99^@ - pedantic^@ cD : EgI : l : L : o : OsU :^@ 누락 된 피연산자^usr/bin/gcc^@ execv (/ usr/bin/gcc)^@^"로 변경하십시오. 적어도 내 시스템에서는 gcc -std = c99 -pedantic 일 것입니다. – Quantumboredom

+1

@Quantumboredom : 횡설수설 사이의 것들은'strings' 명령을 사용하여 추출 할 수 있습니다. –

+0

감사합니다. 나는 그 명령에 대해 몰랐다. – Quantumboredom

관련 문제