folgendes Problemchen:
ich habe ein Modul geschrieben, welches Daten über den Parallelport auf
eine Platine ausgibt oder von dieser Daten einliest.
Dazu habe ich mir ein kleine Proggis geklimpert, welches die Funktionalität
testet.
#include <stdlib.h>
#include <stdio.h>
#include <sys/types.h>
#include <unistd.h>
#include <fcntl.h>
int main(void)
{
int fd;
char buffer[10];
fd = open("/dev/platine", O_RDONLY );
read (fd, buffer, 5);
printf("Puffer: %s\n", buffer);
close(fd);
fd = open("/dev/platine", O_WRONLY );
write(fd, buffer, 5);
close(fd);
return 0;
}
So funzt das auch, nur möchte ich das Schließen und erneute Öffnen der
Datei zum Schreiben unterbinden, d.h. die Datei zum Lesen und Schreiben
öffnen und hintereinander die Daten der Platine gleich wieder auf die
Patine ausgeben. Wenn ich das mache, tut sich nichts, d.h. die Werte kommen
nicht im Puffer des Modules an. Muß ich u.U. den Offset wieder auf den
"Anfang" der Datei setzen ? Wie mache ich das ? fseek() kann ich ja nicht
anwenden, wenn ich mit read()/write() arbeite. Oder doch ?
Danke.
--
----------------------------------------------------------------
| Matthias Hotzel Public-Key: http://www.mhotzel.de |
| e-mail: mho...@bigfoot.de Tel: 0173/9716053 |
----------------------------------------------------------------
> return 0;
> }
Meine Güte, was für Leute schreiben denn heute Kernel-Module?!?
Kein Wunder, daß der Linux-Kernel so unstabil geworden ist.
Wenn dir noch nicht einmal die Semantik von open() und der
lseek()-Syscall bekannt sind, solltest du WEIT WEG vom Kernel
programmieren.
Felix
ich traf auf seek() - und siehe da, es half ;-)
Ciao
lseek() hat mir geholfen :-)
>der doch ?
>
> Meine Güte, was für Leute schreiben denn heute Kernel-Module?!?
> Kein Wunder, daß der Linux-Kernel so unstabil geworden ist.
>
> Wenn dir noch nicht einmal die Semantik von open() und der
> lseek()-Syscall bekannt sind, solltest du WEIT WEG vom Kernel
> programmieren.
>
> Felix
Oh Mann, Du hast wohl gleich mit einem Schiss Weisheit im Hirn angefangen ?
Und Du mußt meine Versuche ja nicht produktiv einsetzen ! Wenn Du mich
nicht für voll nimmst, dann ignorier mich doch einfach !
Im Gegenzug könntest Du die Usenet-Regeln lesen (Stichwort Fullquote).
So - Dein Name landet auf meiner Arroganzliste ganz oben und wird nun
ignoriert.
> Felix von Leitner schrieb:
>> Meine Güte, was für Leute schreiben denn heute Kernel-Module?!?
>> Kein Wunder, daß der Linux-Kernel so unstabil geworden ist.
>>
>> Wenn dir noch nicht einmal die Semantik von open() und der
>> lseek()-Syscall bekannt sind, solltest du WEIT WEG vom Kernel
>> programmieren.
>
> Oh Mann, Du hast wohl gleich mit einem Schiss Weisheit im Hirn angefangen ?
Das Problem ist aber, daß Felix hier vollkommen recht hat. Eine Lösung
für Deine Frage hat er Dir nebenbei auch noch gegeben.
> Wenn Du mich nicht für voll nimmst, dann ignorier mich doch einfach !
Ich persönlich würde mich ja schämen, solche Fragen in der
Öffentlichkeit zu stellen. Wenn Du es trotzdem tust, mußt Du mit
allergischen Reaktionen rechnen.
>>
>> Felix
>
> Im Gegenzug könntest Du die Usenet-Regeln lesen (Stichwort Fullquote).
Stichwort »Sinnvolles Zitieren«. Außerdem plenkst Du.
> So - Dein Name landet auf meiner Arroganzliste ganz oben und wird nun
> ignoriert.
Nimm mich doch bitte auch noch dazu. Wenn Du jemanden plonkst, kannst
Du nämlich keine doofen Antworten mehr auf seine Postings schreiben.
Mit ein wenig Hirn würde man daraus ableiten, daß Plonken nur für
Fortgeschrittene ist.
Flup2 poster.
Grüße,
Gunnar
> So funzt das auch, nur möchte ich das Schließen und erneute Öffnen der
> Datei zum Schreiben unterbinden, d.h. die Datei zum Lesen und Schreiben
> öffnen und hintereinander die Daten der Platine gleich wieder auf die
> Patine ausgeben.
Sollte eigentlich ebenfalls funktionieren.
> Wenn ich das mache, tut sich nichts, d.h. die Werte kommen
> nicht im Puffer des Modules an. Muß ich u.U. den Offset wieder auf den
> "Anfang" der Datei setzen ?
Nein! Dein Problem ist aber schlecht einzugrenzen ohne den zugehoerigen
Kernelcode zu kennen.
Sven
--
"In my opinion MS is a lot better at making money than it is at making good
operating systems" (Linus Torvalds, August 1997)
/me is giggls@ircnet, http://geggus.net/sven/ on the Web