この質問は学校のプロジェクトに関するものなので、単にコードスニペットや他のものを得ることを期待していません。タスクを実行する方法についての指示のみを取得できます。
オペレーティングシステムが私のカスタムファイル拡張子(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 が含まれます。