私はファイルを解析してトークンを返すカーネルモジュールの一部となるLexicalを書くつもりです。そのためには、明らかにユーザー空間関数であるfopen、getc、putc、fseekなどの関数を使用する必要があります。私はカーネル空間でこれらの関数の代替を探し、open、filp_open、sys_openなどの関数を見つけました。しかし、私が知りたいのは、getc、putc、seekなどの関数(ファイル操作では非常に便利です)がカーネル空間で利用できるかどうかです。Linuxカーネルでgetc、putc、seekなどのシンプルなCファイル操作関数を使用できますか?
答えて
Do not。
ファイル、特に複雑な設定ファイルを読むことは、カーネルから行うべきことではありません。
なぜこれが悪い考えであるかに関する多くの情報があります。 The KernelNewbies FAQは良いスタートです。
本当にこれをしないでください。私は多くのベンダー(カーネル)のコードを統合しています。これは、私たちが来て、私たちを噛んでいる間違いの一つです。最初から正しいことをやることを学ぶ。
誰か(何十年ものカーネル経験を持つ...)がそのリファレンスの終わりに達した後、組み込み製品の場合、 「しない」アドバイスを無視することです。それはどうしたら起こりますか? - 私はソースを読むことができます。私はここでは「しない」のような答えに疲れています。まったく役に立たない。私はあなたの答えをダウン投票したいと思っていますが、私はあまりにも "ダウン"ボタンをクリックして忙しい... –
参照してください、時々それは(NFSサーバーのような)が必要であることに同意することができますが、実際には宝石泥棒が聞く必要がある答えではありません。私は簡単な説明へのリンクを追加しますが、本当に*必要な人は5分でそれを見つけることができますし、とにかくそれをやるべきではない人を奨励します。 –
いいえ、私はあまりにも多くのナニーのように私たちのマシンを壊すことからOPを保つためにしようとしているように聞こえるので、ここで正しい答えはない "私は同意しません。私たちが5分でエリート主義の味方を見つけることができるので、「しない」というあなたの正当性は大丈夫です。さて、私が実際に行っているので、私が最初のUNIXカーネルを1981年に作ったかのように、5、10、20、または...分を費やして、それを掘り起こし、私は "エリート" 。 –
- 1. arm-linux-gccで使用されるC/C++ターゲットのシンプルなメークファイル
- 2. シンプルなすくいファイル操作
- 3. K&Rのgetcとputcの実装は正しいのですか?
- 4. Linuxカーネル:マルチプロセッサシステムのschedule()関数
- 5. Linuxカーネルでvfs_readdirはどのように使用しますか?
- 6. ファイルのLinuxカーネルでCrypto APIを使用する
- 7. シンプルなシングルトンをどのように作成できますか?
- 8. Linuxカーネルでの原子操作の読み込みと書き込み
- 9. セマフォは数値操作を使用できますか?
- 10. Linuxカーネルの小さなサブセットをコンパイルします(つまり、少数のファイル)。
- 11. Django - 異なるファイルの異なる関数からアクセス/操作できるグローバル変数を作成できますか?
- 12. Linuxカーネルでのfor_each_processマクロの使用
- 13. linuxカーネルのシステムコールテーブルはどこですか?
- 14. シンプルなCコードはHPUXではうまく動作しますが、Linuxではsegfaultsです。どうして?
- 15. show文でconcat()group_concat()などの関数を使用できますか?
- 16. シンプルなLinux APIを作成する
- 17. hadoopのreduce関数でファイルを使用できますか?
- 18. シンプルなC関数呼び出し
- 19. dlsymを使用しないLinuxでの関数の介入
- 20. シンプルな構文 - ハイライトはASP.NET MVCで使用できますか?
- 21. どのようなc#クラスと関数をかみそりで使用できますか?
- 22. Cでのファイル操作
- 23. シンプルなJavascript関数
- 24. cまたはC++用のシンプルな2次元クロスプラットフォームグラフィックスライブラリですか?
- 25. Visual BasicでC++関数を使用できますか?
- 26. C++ 0xは関数シグネチャでdecltype()を使用できますか?
- 27. シンプルなLinuxのスクリプト
- 28. PHPでクラスなしで関数ファイルをオートロードできますか?
- 29. システムコール関数 "sys_getpid"は、Linuxカーネルにありますか?
- 30. linuxでは、ユーザー空間プログラムがどのようにカーネル関数を使用できますか?私は本当にインスピレーションが必要です
なぜこれを最初にカーネルに入れたいのですか? – Nobody
私はopenがシステムコールだと思います。 –
@Nobody私はいくつかの機能のために設定ファイルを解析する必要があるカーネルモジュールを書いています。 –