私はファイルを解析してトークンを返すカーネルモジュールの一部となる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カーネルでvfs_readdirはどのように使用しますか?
- 5. `get_price_html()`関数をどのように操作できますか?
- 6. 使用メモリなしでInfluxDBを操作できますか?
- 7. Linuxカーネルは別のLinuxカーネルを読み込んで実行できますか?
- 8. Linuxカーネル:マルチプロセッサシステムのschedule()関数
- 9. 関数で "オブジェクト"を操作するC
- 10. C++で関数を操作する
- 11. なぜLinuxカーネルで単一のハッシュバケットハッシュテーブルを使用するのですか
- 12. シンプルなシングルトンをどのように作成できますか?
- 13. PHPのシンプルなHTML DOMパーサのfind()関数を使用できません
- 14. ファイルのLinuxカーネルでCrypto APIを使用する
- 15. どの関数が数値でしか使用できない
- 16. C#でOracle関数を呼び出すとき - エラー: "無効なデータ操作"
- 17. Objective C関数で「パラメータなしのパラメータ」を使用できますか?
- 18. linuxカーネルのシステムコールテーブルはどこですか?
- 19. Linuxカーネルでの原子操作の読み込みと書き込み
- 20. シンプルなCコードはHPUXではうまく動作しますが、Linuxではsegfaultsです。どうして?
- 21. Linuxカーネルでのfor_each_processマクロの使用
- 22. linuxカーネルでのpwm_get()の使用例
- 23. Prolog - シンプルな関数を作成する
- 24. GDBのないボードでLinuxカーネルをデバッグ
- 25. Linuxカーネルのdm_per_bio_data関数は何をしますか?
- 26. Cで異常な数学的操作
- 27. Linuxカーネルの小さなサブセットをコンパイルします(つまり、少数のファイル)。
- 28. セマフォは数値操作を使用できますか?
- 29. シンプルなLinux APIを作成する
- 30. Django - 異なるファイルの異なる関数からアクセス/操作できるグローバル変数を作成できますか?
なぜこれを最初にカーネルに入れたいのですか? – Nobody
私はopenがシステムコールだと思います。 –
@Nobody私はいくつかの機能のために設定ファイルを解析する必要があるカーネルモジュールを書いています。 –