fputc, Ausgabe

Disclaimer: Dieser Thread wurde aus dem alten Forum importiert. Daher werden eventuell nicht alle Formatierungen richtig angezeigt. Der ursprüngliche Thread beginnt im zweiten Post dieses Threads.

fputc, Ausgabe
Hi, ich habe ein Verhalten in meinem Programm das ich mir mit meinem begrenzten C-Wissen nicht erklären kann.
Wenn ich in folgendem Codeabschnitt fputc zweimal ausführe, dann werden alle Zeichen aus dem Stream erwartungsgemäß in jedem Iterationsschritt doppelt ausgegeben. Wenn ich es jedoch nur einmal ausführe wird garnichts ausgegeben… Weiß jemand woran das liegen könnte? fflush(stderr) habe ich auch schon probiert, aber das hat auch nichts gebracht.

        char prev = '\0';
		char curr = '\0';
		while (1){
			curr = fgetc(rx);
			if (prev == '\r' && curr == '\n') break;
			fputc(curr, stderr);
			// fputc(curr, stderr);
			prev = curr;
		}

Auf welcher Platform hast du das ausgeführt (wegen dem \r\n nehme ich an Windows, DOS oder CP/M)? Auf Debian scheint es das zu machen was man erwarten würde.


Per ssh auf den CIP-Rechnern (ist ein Teil von snail um die Fehlerausgabe des SMTP Protokolls an stderr weiterzuleiten). Auf stderr wurde zuvor auch nicht geschrieben… Also hat es vielleicht was mit dem FILE* rx zu tun…?


Sehe auf dem ersten Blick nicht wie das zusammen hängen soll, angenommen das Zeichen wurde wirklich eingelesen mit fgetc.