otrzymuję winy segmentacji z tym kodem na fprintf:winy segmentacji na terminalu pseudo
#define _GNU_SOURCE
#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <stdlib.h>
#include <stdint.h>
#include <fcntl.h>
#include <errno.h>
#include <time.h>
#include <sys/time.h>
#include <unistd.h>
int fd;
int main(int argc, char **argv) {
fd = posix_openpt(O_RDWR | O_NOCTTY);
fprintf(fd, "hello\n");
close(fd);
}
Ale to działa dobrze z:
fprintf(stderr, "hello\n");
Co jest tego przyczyną?
Czy sprawdziłeś wynik posix_openpt()? – Greycon
fprintf() wymaga FILE * a nie deskryptora pliku – Carles
Nie należy ignorować ostrzeżeń, których nie rozumiesz ... Zwłaszcza jeśli odpowiadająca linia powoduje błąd segfault. – mafso