Ich bekomme einen Segmentierungsfehler mit diesem Code auf fprintf:
Aber es funktioniert gut mit:
Was verursacht das?
Sie haben einen segfault, weil fd ein int ist, und fprintf mit Ausnahme von FILE* .
fd
int
fprintf
FILE*
Probieren Sie fdopen über das fd :
Sie versuchen, den Dateideskriptor (für den Dateizugriff auf niedriger Ebene) an fprintf zu übergeben, aber er benötigt tatsächlich eine FILE -Struktur, die in stdio.h definiert ist.
FILE
stdio.h
Sie könnten dprintf oder fdopen (das sind POSIX).
Um in einen Dateideskriptor zu schreiben, verwenden Sie write() . Der Befehl fprintf benötigt einen FILE* typisierten Zeiger.
write()
Tags und Links c linux segmentation-fault pty