Hallo Liste, Welche Zeichenfolge erkennt Linux 7.3 als End of File? Habs mit EOF versucht aber ging nicht. mfg Thomas Mayr
Hallo Liste, thomas.mayr@mcpsound.at schrieb:
Welche Zeichenfolge erkennt Linux 7.3 als End of File? Habs mit EOF versucht aber ging nicht.
Ähm - was genau willst Du machen? Wenn Du uns das sagst, dann können wir Dir evtl. weiterhelfen :) Wenn Du etwas machen willst wie z.B. ein Programm starten, dass Eingabe an der Console bekommt, dann machst Du: user@rechner:/pfad > program -argumente << XYZ bla bla bla bla bla bla XYZ Wobei Du XYZ beliebig wählen kannst. Es darf halt nur nicht in deinem "bla bla bla" vorkommen. Ich nehme meistens -EOF-! Wenn ich aber z.B. dies als eMail so geschrieben hätte, dann hätte ich etwas anderes nehmen müssen, weil er sonst ja das -EOF- gematcht hätte! Mit den besten Grüßen, Konrad Neitzel -- SoftMediaTec GmbH Tel: 0172 / 689 31 45 Fax: 069 / 90 50 99 53
Am Die, 26 Feb 2002 schrieb Thomas:
Hallo Liste,
Welche Zeichenfolge erkennt Linux 7.3 als End of File? Habs mit EOF versucht aber ging nicht.
In welchem Zusammenhang brauchst Du das? Hast Du mal Ctrl-D versucht? Gruß Christoph -- Christoph Maurer - 52072 Aachen - Tux#194235 mailto:christoph-maurer@gmx.de - http://www.christophmaurer.de Auf der Homepage u.a.: Installation von SuSE 7.0 auf Notebook Acer Travelmate 508 T, Elektrotechnik an der RWTH Aachen
Thomas wrote:
Hallo Liste,
Welche Zeichenfolge erkennt Linux 7.3 als End of File? Habs mit EOF versucht aber ging nicht.
mfg Thomas Mayr
Keine.
EOF ist eine Konstante, die zurueckgegeben wird, wenn
beim Lesen einer file keine weiteren Daten mehr anliegen.
in C koennte man sowas etwa so formulerien:
while ( (c=getc(stdin)) != EOF ) putc(c,stdout);
Ich vermute aber mal das du nicht programmieren in dieser
Art programmieren moechtest. Oder? Deine Frage ist recht
missverständlich vormuliert.
Solltest Du hingegen mit scripten hantieren, kann dir vielleicht
dies helfen:
#!/bin/bash
test $# -gt 0 && while [ "$1" != "" ]; do
case $1 in
"help") cat <
Hallo Liste!
"D.Wolpert"
in C koennte man sowas etwa so formulerien:
while ( (c=getc(stdin)) != EOF ) putc(c,stdout);
Hmmm - das mag bei ASCII-Files vielleicht funktionieren, aber sonst fliegt man hier schön auf die Schnauze. Ich denke, dass es da so schöne f* Funktionen gibt, wie z.B. feof! Also mehr sowas wie ein while (!feof(stdin))! Oder auch gerne gesehen: Ich versuche x Zeichen in einen Puffer zu lesen und kriege zurück, wie viele Zeichen gelesen werden konnten bzw. einen Fehlercode! Das obrige ist aber blöd, da ich einen char-Code erwarte. Dieser kann aber nur zwischen 0 und 255 sein. Diese Zeichen können aber auch vorkommen. Mit den besten Grüßen, Konrad Neitzel -- SoftMediaTec GmbH Tel: 0172 / 689 31 45 Fax: 069 / 90 50 99 53
Am Die, 2002-02-26 um 10.00 schrieb Konrad Neitzel:
Hallo Liste!
"D.Wolpert"
schrieb: in C koennte man sowas etwa so formulerien:
while ( (c=getc(stdin)) != EOF ) putc(c,stdout);
Hmmm - das mag bei ASCII-Files vielleicht funktionieren, aber sonst fliegt man hier schön auf die Schnauze. Irrtum:
man getc: fgetc(), getc() and getchar() return the character read as an unsigned char cast to an int or EOF on end of file or error.
Ich denke, dass es da so schöne f* Funktionen gibt, wie z.B. feof! Also mehr sowas wie ein while (!feof(stdin))!
Oder auch gerne gesehen: Ich versuche x Zeichen in einen Puffer zu lesen und kriege zurück, wie viele Zeichen gelesen werden konnten bzw. einen Fehlercode!
Das obrige ist aber blöd, da ich einen char-Code erwarte. man getc:
int getc(FILE *stream); Beachte: int!
Dieser kann aber nur zwischen 0 und 255 sein. Diese Zeichen können aber auch vorkommen. Aus stdio.h: # define EOF (-1)
D.h EOF = 0xFFFFFFFF und nicht 0xFF Der Knackpunkt ist "int c; while((c=getc(stdin)) != EOF)". Nur weil viele "char c" verwenden und sich dann wundern, warum ihr tollen IO-Routinen mit bestimmten Dateien nicht tun, wäre feof zu bevorzugen, da es weniger fehlerträchtig ist. Ralf
Hi! On Tue, 26 Feb 2002, Konrad Neitzel wrote:
"D.Wolpert"
schrieb: in C koennte man sowas etwa so formulerien:
while ( (c=getc(stdin)) != EOF ) putc(c,stdout);
Hmmm - das mag bei ASCII-Files vielleicht funktionieren, aber sonst fliegt man hier schön auf die Schnauze.
Nö. Du mußt einfach c als _int_ (nicht _char_) deklarieren, dann klappt alles bestens - getc() liefert ein _int_ zurück, und EOF ist ein Wert, der garantiert nicht in einen _char_ passt! (s.auch die libc-Infodatei zum Thema fgetc()&Co.)
Ich denke, dass es da so schöne f* Funktionen gibt, wie z.B. feof! Also mehr sowas wie ein while (!feof(stdin))!
So geht's natürlich auch. Martin
* Konrad Neitzel schrieb am 26.Feb.2002:
"D.Wolpert"
schrieb:
in C koennte man sowas etwa so formulerien:
while ( (c=getc(stdin)) != EOF ) putc(c,stdout);
Hmmm - das mag bei ASCII-Files vielleicht funktionieren, aber sonst fliegt man hier schön auf die Schnauze. Ich denke, dass es da so schöne f* Funktionen gibt, wie z.B. feof! Also mehr sowas wie ein while (!feof(stdin))!
Oder auch gerne gesehen: Ich versuche x Zeichen in einen Puffer zu lesen und kriege zurück, wie viele Zeichen gelesen werden konnten bzw. einen Fehlercode!
Das obrige ist aber blöd, da ich einen char-Code erwarte. Dieser kann aber nur zwischen 0 und 255 sein. Diese Zeichen können aber auch vorkommen.
Nein, getc gibt einen Integerwert zurück, EOF ist als -1 definiert, daß kann nicht als char vorkommen. Es wird vom System zurückgegeben, wenn das Dateiende da ist, ermittelt über die I-Node. Bernd -- ROTFL = Rolling On The Floor, Laughing = Auf dem Boden wälzen, lachend. SCNR = Sorry, Could Not Resist = Sorry, Ich konte nicht wiederstehen. AFAIK = As Far As I Know = So weit ich weis|BTW = By The Way = Nebenbei bemerkt IMHO = In My Humble Opinion = meiner bescheidenen Meinung nach |Zufallssig. 9
Hallo, Als Pedant möchte ich noch anfügen: Am Dienstag, 26. Februar 2002 10:00 schrieb Konrad Neitzel:
"D.Wolpert"
schrieb: in C koennte man sowas etwa so formulerien:
while ( (c=getc(stdin)) != EOF ) putc(c,stdout);
[...] Das obrige ist aber blöd, da ich einen char-Code erwarte. Dieser kann aber nur zwischen 0 und 255 sein. Diese Zeichen können aber auch vorkommen.
In C geht ein `char' von -128 bis +127, ein `unsigned char' von 0 bis 255.
Beide sind genau ein Byte lang.
Im obigen Beispiel ist die Variable `c' vom Typ `int'. Dessen Länge ist je
nach System 2 oder 4 Bytes (bei Linux immer 4). Dort paßt die Funktion
einen `unsigned char'-Wert ein, wenn ein Zeichen gelesen wurde, z.B. steht
drin 0x00000041 für ein 'A'. `EOF' ist definiert als Konstante mit dem
Wert -1. Wenn also 0xffffffff in `c' steht, signalisiert `getc()', daß
das Dateiende erreicht ist. Um ein Zeichen handelt es sich dabei nicht.
Übrigens: Das Strg-D als Dateiende gilt nur, wenn Programme wie `cat'
mangels ge-pipe-tem stdin von der _Tastatur_ lesen. Eigentlich handelt
es sich dabei um ein normales Zeichen (Code 4), es markiert keineswegs
das Stream-Ende in:
$ echo -en "Hallo\x04, hier geht's weiter." | od -c
Gruß
Bertram
--
Bertram Scharpf
Am Dienstag 26 Februar 2002 10:29 schrieb D.Wolpert:
Thomas wrote:
Hallo Liste,
Welche Zeichenfolge erkennt Linux 7.3 als End of File? Habs mit EOF versucht aber ging nicht.
mfg Thomas Mayr
Keine.
EOF ist eine Konstante, die zurueckgegeben wird, wenn beim Lesen einer file keine weiteren Daten mehr anliegen.
in C koennte man sowas etwa so formulerien:
while ( (c=getc(stdin)) != EOF ) putc(c,stdout);
Ich vermute aber mal das du nicht programmieren in dieser Art programmieren moechtest. Oder? Deine Frage ist recht missverständlich vormuliert.
Solltest Du hingegen mit scripten hantieren, kann dir vielleicht dies helfen:
#!/bin/bash
test $# -gt 0 && while [ "$1" != "" ]; do case $1 in "help") cat <
HTH Daniel
-- Um die Liste abzubestellen, schicken Sie eine Mail an: suse-linux-unsubscribe@suse.com Um eine Liste aller verfügbaren Kommandos zu bekommen, schicken Sie eine Mail an: suse-linux-help@suse.com
Hi, Ok die Frage ist wirklich ungenau. Ich bin gerade dabei qmail zu testen und zwar: /var/qmail/bin/qmail-inject -f nonexistent dann ENTER und TO: blabla ENTER Subject: test ENTER Das ist ein test. So jetzt soll ich laut How to End of File verwenden um abzuschließen - doch wie wenn ich nicht weiß was als EOF interpretiert wird. mfg Thomas Mayr
Thomas wrote:
Am Dienstag 26 Februar 2002 10:29 schrieb D.Wolpert:
Thomas wrote:
Hallo Liste,
Welche Zeichenfolge erkennt Linux 7.3 als End of File? Habs mit EOF versucht aber ging nicht.
mfg Thomas Mayr
Keine.
EOF ist eine Konstante, die zurueckgegeben wird, wenn beim Lesen einer file keine weiteren Daten mehr anliegen.
in C koennte man sowas etwa so formulerien:
while ( (c=getc(stdin)) != EOF ) putc(c,stdout);
Ich vermute aber mal das du nicht programmieren in dieser Art programmieren moechtest. Oder? Deine Frage ist recht missverständlich vormuliert.
Solltest Du hingegen mit scripten hantieren, kann dir vielleicht dies helfen:
#!/bin/bash
test $# -gt 0 && while [ "$1" != "" ]; do case $1 in "help") cat <
HTH Daniel
Hi,
Ok die Frage ist wirklich ungenau. Ich bin gerade dabei qmail zu testen und zwar: /var/qmail/bin/qmail-inject -f nonexistent dann ENTER und TO: blabla ENTER Subject: test ENTER Das ist ein test.
So jetzt soll ich laut How to End of File verwenden um abzuschließen - doch wie wenn ich nicht weiß was als EOF interpretiert wird.
mfg Thomas Mayr Hier sollst Du in der Tat ein CTRl-D verwenden!! Daniel
Am Dienstag 26 Februar 2002 10:54 schrieb D.Wolpert:
Thomas wrote:
Am Dienstag 26 Februar 2002 10:29 schrieb D.Wolpert:
Thomas wrote:
Hallo Liste,
Welche Zeichenfolge erkennt Linux 7.3 als End of File? Habs mit EOF versucht aber ging nicht.
mfg Thomas Mayr
Keine.
EOF ist eine Konstante, die zurueckgegeben wird, wenn beim Lesen einer file keine weiteren Daten mehr anliegen.
in C koennte man sowas etwa so formulerien:
while ( (c=getc(stdin)) != EOF ) putc(c,stdout);
Ich vermute aber mal das du nicht programmieren in dieser Art programmieren moechtest. Oder? Deine Frage ist recht missverständlich vormuliert.
Solltest Du hingegen mit scripten hantieren, kann dir vielleicht dies helfen:
#!/bin/bash
test $# -gt 0 && while [ "$1" != "" ]; do case $1 in "help") cat <
HTH Daniel
Hi,
Ok die Frage ist wirklich ungenau. Ich bin gerade dabei qmail zu testen und zwar: /var/qmail/bin/qmail-inject -f nonexistent dann ENTER und TO: blabla ENTER Subject: test ENTER Das ist ein test.
So jetzt soll ich laut How to End of File verwenden um abzuschließen - doch wie wenn ich nicht weiß was als EOF interpretiert wird.
mfg Thomas Mayr
Hier sollst Du in der Tat ein CTRl-D verwenden!! Daniel
-- Um die Liste abzubestellen, schicken Sie eine Mail an: suse-linux-unsubscribe@suse.com Um eine Liste aller verfügbaren Kommandos zu bekommen, schicken Sie eine Mail an: suse-linux-help@suse.com
Hi, Vielen Dank an alle. Funktioniert ! :-) mfg Thomas Mayr
Moin Thomas, * Thomas schrieb am 26 Feb 2002:
Am Dienstag 26 Februar 2002 10:29 schrieb D.Wolpert:
Thomas wrote:
Hallo Liste,
Welche Zeichenfolge erkennt Linux 7.3 als End of File? Habs mit EOF versucht aber ging nicht.
Ok die Frage ist wirklich ungenau. Ich bin gerade dabei qmail zu testen und zwar: /var/qmail/bin/qmail-inject -f nonexistent dann ENTER und TO: blabla ENTER Subject: test ENTER Das ist ein test.
So jetzt soll ich laut How to End of File verwenden um abzuschließen - doch wie wenn ich nicht weiß was als EOF interpretiert wird.
Wenn qmail sendmail-kompatibel ist, dann kannst du hier mit einem einzelnen "." auf einer leeren Zeile beenden. Gruß, Sebastian -- Do not meddle in the affairs of Wizards, for they are subtle and quick to anger. Sebastian Helms - http://www.helms.sh - mailto:mail@helms.sh (PGP welcome) SuSE-Linux-Mailinglisten-FAQ: http://www.helms.sh/faq/
* Thomas schrieb am 26.Feb.2002:
Welche Zeichenfolge erkennt Linux 7.3 als End of File? Habs mit EOF versucht aber ging nicht.
Wie meinst Du das? Auf eine Datei? Gar keine. In der Inode steht die Größe der Datei und nach dieser Größe ist die Datei zu Ende. Alles was zwichendurch steht, gehört zur Datei, was immer daß auch sein mag. Kommt die Eingabe aber von einem Bildschirm, so wird CTRL-D in einer neuen Zeile als Dateiende angesehen. Bernd -- Bei Fragen an die Liste erst mal nachschauen, ob es diese Frage nicht schon einmal gegeben hat. Ein Archiv der Liste findest Du auf: http://lists.suse.com/archives/suse-linux |Zufallssignatur 7
participants (9)
-
B.Brodesser@t-online.de
-
Bertram Scharpf
-
Christoph Maurer
-
D.Wolpert
-
Konrad Neitzel
-
Martin Köhling
-
Ralf Corsepius
-
Sebastian Helms
-
Thomas