2011-08-16 7 views
5

누구나 ASCII 영어 텍스트와 ASCII C 프로그램 텍스트 파일의 차이점을 말할 수 있습니까? 저는 작은 프로그램을 작성해 왔고 파일 중 하나에서 Linux 'file'명령을 사용할 때 ASCII 영어 텍스트로 설명하지만 다른 모든 파일은 ASCII C 프로그램 텍스트로 설명됩니다. 프로그램이 컴파일되지만 이상한 결과가 나타납니다. 이것은 관련이 없을 수도 있지만 이것이 문제의 원인이라고 생각하는 것을 피할 수는 없습니다.ASCII 영어 텍스트/ASCII C 프로그램 텍스트 질문

그렇다면이 두 파일의 차이점은 무엇입니까? 왜 파일이 ​​컴파일되고 이로 인해 문제가 발생할 수 있습니까? 마지막으로 어떻게 ASCII 영어 텍스트를 ASCII C 프로그램 텍스트로 변환 할 수 있습니까?

감사합니다.

+0

cat myEnglishTextFile> aNewFile.c를 시도해보고 새로운 유형을 알려주십시오. D – Kheldar

+0

일부는 ASCII 영어 텍스트이고 다른 일부는 ASCII C 프로그램 텍스트 인 소스 파일에 대해 이야기하고 있습니까? –

+0

Kheldar - 파일 설명은 동일하게 유지됩니다. – JohnB

답변

6

C 소스 코드 파일에는 '마법의 숫자'가 없기 때문에 file 유틸리티는 '몇 가지 발견법'(예 : 처음 몇 줄에 "#include <"이 포함 된 경우)과 같은 추론을 사용하여 'C '파일. 파일이 경험적 방법과 일치하지 않지만 영어 단어가 포함되어 있으면 file 유틸리티가 잘못 생각할 수 있습니다. 걱정할 것이 없다. C 코드는 컴파일되고 실행되기로되어 있으며, 단지 file으로 식별되도록 작성되지 않았습니다.

+0

훌륭하게 그게 문제였습니다. #include가 파일에있는 첫 번째 것이고 파일 유형이 변경되도록 코드 상단의 주석을 제거했습니다. 감사! – JohnB

-1

나는이 설명이 의미하는 것의 의미를 잘못 해석했다고 생각합니다.
ASCII은 텍스트를 저장하는 방법에 대한 표준입니다 (UTF8 또는 UTF16은 참조 용으로 다른 표준이지만 ASCII와 공존 함). 당신을 말하려고 무엇 file

은 다음과 같습니다

  • ASCII 영어 텍스트 - 일반 텍스트 파일, ASCII 형식으로 저장된 텍스트는
  • ASCII의 C 프로그램 텍스트 - C 프로그램 구문 검색, ASCII 형식으로 저장된 텍스트

가능성이 가장 높음 ASCII C 프로그램 텍스트은 상자의 경우, ASCII 영어 텍스트은 보통 텍스트 (예 : readme.txt) 여야하므로 입력하지 마십시오. 반면에 file 유틸리티는 단지 파일 유형을 추측하며 매직 번호 (예 : 바이너리 GIF 또는 PNG 또는 다른 많은 파일 유형)가 없기 때문에 모든 경우에 텍스트 파일 추측이 정확하지 않을 수 있습니다. . 따라서 file에 의존해서는 안되며, 유일한 목적은 입니다.입니다.

ASCII 영어 텍스트 형식의 완벽한 c 프로그램 파일의 경우 라인 엔딩에 문제가있을 가능성이 큽니다. 이러한 파일에 fromdos을 실행하려고하면 Windows 스타일의 CRLF 줄 끝 문자를 Linux 스타일의 LF 줄 끝 문자로 변환해야합니다.

+0

그렇다면 .c 접미사가있는 파일이 ASCII 영어 텍스트 파일을 생각하는 이유는 무엇입니까? – JohnB

+0

업데이트 된 답변을 확인하십시오. 아마 줄 끝은 리눅스 스타일이 아닙니다. –

관련 문제