2012-02-27 9 views
6

私はファイルを解析してトークンを返すカーネルモジュールの一部となるLexicalを書くつもりです。そのためには、明らかにユーザー空間関数であるfopen、getc、putc、fseekなどの関数を使用する必要があります。私はカーネル空間でこれらの関数の代替を探し、open、filp​​_open、sys_openなどの関数を見つけました。しかし、私が知りたいのは、getc、putc、seekなどの関数(ファイル操作では非常に便利です)がカーネル空間で利用できるかどうかです。Linuxカーネルでgetc、putc、seekなどのシンプルなCファイル操作関数を使用できますか?

+2

なぜこれを最初にカーネルに入れたいのですか? – Nobody

+0

私はopenがシステムコールだと思います。 –

+0

@Nobody私はいくつかの機能のために設定ファイルを解析する必要があるカーネルモジュールを書いています。 –

答えて

5

Do not。

ファイル、特に複雑な設定ファイルを読むことは、カーネルから行うべきことではありません。

なぜこれが悪い考えであるかに関する多くの情報があります。 The KernelNewbies FAQは良いスタートです。

本当にこれをしないでください。私は多くのベンダー(カーネル)のコードを統合しています。これは、私たちが来て、私たちを噛んでいる間違いの一つです。最初から正しいことをやることを学ぶ。

+3

誰か(何十年ものカーネル経験を持つ...)がそのリファレンスの終わりに達した後、組み込み製品の場合、 「しない」アドバイスを無視することです。それはどうしたら起こりますか? - 私はソースを読むことができます。私はここでは「しない」のような答えに疲れています。まったく役に立たない。私はあなたの答えをダウン投票したいと思っていますが、私はあまりにも "ダウン"ボタンをクリックして忙しい... –

+0

参照してください、時々それは(NFSサーバーのような)が必要であることに同意することができますが、実際には宝石泥棒が聞く必要がある答えではありません。私は簡単な説明へのリンクを追加しますが、本当に*必要な人は5分でそれを見つけることができますし、とにかくそれをやるべきではない人を奨励します。 –

+2

いいえ、私はあまりにも多くのナニーのように私たちのマシンを壊すことからOPを保つためにしようとしているように聞こえるので、ここで正しい答えはない "私は同意しません。私たちが5分でエリート主義の味方を見つけることができるので、「しない」というあなたの正当性は大丈夫です。さて、私が実際に行っているので、私が最初のUNIXカーネルを1981年に作ったかのように、5、10、20、または...分を費やして、それを掘り起こし、私は "エリート" 。 –

関連する問題