Linux でカーネル モジュールを開発する場合、C 標準ライブラリを使用することはできません。
ただし、 のような一般的な機能を使用する必要がある場合はstrcat()
、どこに行く必要がありますか?
2 に答える
Linux カーネルに実装されていないものはすべて、自分で実装するか、別のオープン ソース カーネル モジュールから借用する必要があります。strcat
ただし、カーネルに実装されていることがわかります。
カーネル APIのドキュメントを参照してください。具体的には、一般的な質問のBasic C Library Functionsセクションと、特定の質問のString Manipulationstrcat
セクションです。
を含める必要がありますlinux/string.h
。
関数を取得するためにインクルードする必要があるヘッダー ファイルがカーネル API ドキュメントに実際に表示されない理由がわかりません。ただし、何かを探している/include/linux
場合は、カーネルのさまざまな部分で共有される関数が含まれている場合にヘッダー ファイルが移動する場所であるため、検索を制限することができます。
外部のヘッダー ファイルに/include/linux
は、ヘッダーと同じディレクトリにあるソース ファイルの定義のみが含まれます。例外は です/arch/.../include
。これには、プラットフォームに依存しないヘッダーではなく、アーキテクチャ固有のヘッダーが含まれます。
申し訳ありません@eq - 別の関数を考えています。
なぜだめですか
void (char *d, const char *s);
{
if (*d)
{
for (; *d; ++d) {} ;
--d;
}
strcpy(d, s);
}
strcpy
あなたが望むなら、私はすることができます