2012-02-27 10 views
6

Mam zamiar napisać leksykon, który będzie częścią modułu jądra, w którym sparsuję plik i zwrócę tokeny. W tym celu potrzebuję użyć funkcji takich jak fopen, getc, putc, fseek itd., Które oczywiście są funkcjami przestrzeni użytkownika. Szukałem alternatywy dla tych funkcji w przestrzeni jądra i znalazłem funkcje takie jak open, filp_open, sys_open itd., Które, jak sądzę, byłyby dla mnie w porządku. Ale co chcę wiedzieć, czy funkcje takie jak getc, putc, seek itp. (Które mogą być bardzo przydatne w operacjach na plikach), są dostępne w przestrzeni jądra?Czy proste funkcje obsługi plików C, takie jak getc, putc and seek, są dostępne w jądrze Linuksa?

+2

Dlaczego chcesz umieścić to w jądrze w pierwszej kolejności? – Nobody

+0

Myślę, że open to wywołanie systemowe. –

+0

@ Nikt nie piszę modułu jądra, który wymagałby parsowania pliku konfiguracyjnego dla niektórych funkcji. –

Odpowiedz

5

Nie.

Czytanie plików, a szczególnie skomplikowanych plików konfiguracyjnych, nie jest czymś, co powinno być zrobione z jądra.

Istnieje wiele informacji o tym, dlaczego jest to zły pomysł. The KernelNewbies FAQ to dobry początek.

Naprawdę, naprawdę tego nie rób. Integruję wiele kodów dostawcy (kernela) i jest to jeden z błędów, który ciągle nas atakuje. Naucz się robić rzeczy we właściwy sposób od samego początku.

+3

Po tym, jak ktoś (... z dekadami doświadczenia jądra ...) dotrze do końca tego odnośnika i stwierdzi, że dla ich wbudowanego produktu jedyny sposób na czy "to" to zignorować poradę "Nie", jak to się dzieje? Nie martw się - mogę odczytać źródło. Po prostu mam dość odpowiedzi takich jak "Nie" tutaj. Wcale nie pomocne. Głosowałem w dół na twoją odpowiedź, ale jestem zbyt zajęty, aby kliknąć przycisk "W dół" ... –

+0

Zobacz, mogę zgodzić się, że czasami jest to wymagane (jak na serwerze NFS), ale myślę, że zgadzasz się, że " Nie "jest tak naprawdę odpowiedzią Jewel Thief. Dodałem link do krótkiego opisu, ale każdy, kto * naprawdę * tego potrzebuje, znajdzie go w 5 minut, a zachęci to tylko tych, którzy i tak nie powinni tego robić. –

+2

Nie, nie zgadzam się, że "Do not" nie jest poprawną odpowiedzią, ponieważ brzmi to tak bardzo, jakbyśmy byli bandą Nianów próbujących powstrzymać OP przed zniszczeniem ich maszyny. Twoje usprawiedliwienie, że "nie rób", jest w porządku, ponieważ mogliśmy znaleźć w ciągu 5 minut odrobinę elitarności. Cóż, co jeśli nie chcę spędzić 5, 10, 20 lub ... minut na kopaniu i jestem jedną z "elit", bo naprawdę jestem - moje pierwsze jądro systemu UNIX działa w 1981 roku . –

Powiązane problemy