이 질문은 학교 프로젝트에 대한 것이므로 단지 코드 조각이나 다른 것을 얻을 것으로 기대하지는 않습니다. 작업을 수행하는 방법에 대한 지침만 얻을 수 있습니다.
운영 체제에서 내 사용자 정의 파일 확장자(예: textfile.hello)를 인식하고 일부 텍스트 편집기를 사용하여 기본적으로 모든 .hello 파일을 여는 등의 작업을 수행할 수 있기를 원합니다.
이 동작을 어떻게 구현합니까? 제가 이해한 바에 따르면 커널의 파일 하위 시스템에서 실행되는 일부 코드를 작성해야 하지만 어떻게 해야 하는지 또는 올바른지 100% 확신할 수 없습니다.
미리 감사드립니다!
답변1
Stephen이 의견에서 언급했듯이 확장명으로 파일을 식별하고 해당 파일을 연 프로그램과 연결하는 것은 일반적으로 데스크탑 환경(KDE, gnome 등)에서 수행됩니다. 반면에 DE(데스크톱 환경)에서는 유틸리티 file
(또는 유사한 유틸리티)를 사용하여 파일 형식을 결정하는 경우가 많습니다.매직넘버. 이 경우 보다 구체적인 규칙을 정의해야 할 수도 있습니다. 예를 들어, 내 컴퓨터에서는 Kubuntu를 사용하여 Kate를 사용하여 일반 ascii 및 utf 파일을 열지만 해당 파일이 .c, .h, .cpp, .hpp, .cmake 등으로 끝나면 대신 emacs Open을 사용합니다. . @quixotic이 지적했듯이 이 확장자 일치는 일반적으로 xdg-open
.
대부분의 데스크톱 환경에서는 시스템 설정 메뉴에서 이 설정을 변경할 수 있으며, [마우스 오른쪽 버튼 클릭 -> 다른 프로그램으로 열기] 작업 중에 수동으로 정의하여 변경할 수 있습니다.
참고로(실제로 주제에 관한 것은 아니지만 관련됨) 확장명이 없어도 일부 특수한 ascii 파일을 식별할 수 있는 방법이 있습니다. 예를 들어 적절하게 작성된 쉘 스크립트는 주석이 아닌 줄 앞에 shebang을 포함합니다.