I keep on having a segmentation fault while trying to access a struct named Request, filled with data read from a pipe. What's wrong with my code? The error is thrown here with a simple printf trying to print the name field
STRUCT DEFINITION:
typedef struct
{
char code;
pid_t pid;
char *name;
char *object;
int id;
void *buffer;
size_t size;
} Request;
WRITER CODE:
request.code = MANADDUSER; /* macro defining a char */
request.pid = getpid();
request.name = argument1; /* dinamycally allocated string */
request.object = NULL;
request.id = 0;
request.buffer = NULL;
request.size = 0;
if((fifoto = open(FIFOTOMMBOXD, O_WRONLY)) == -1) logMmboxman("error in opening FIFOTO\n", 1);
else logMmboxman("opened FIFOTO\n", 0);
if((write(fifoto, &request, sizeof(Request))) != sizeof(Request)) logMmboxman("error in writing FIFOTO\n", 1);
else logMmboxman("written on FIFOTO\n", 0);
close(fifoto);
READER CODE:
if((fifoto = open(FIFOTOMMBOXD, O_RDWR)) == -1) logMmboxd("error in opening FIFOTO\n", 1);
else logMmboxd("opened FIFOTO\n", 0);
if((read(fifoto, &request, sizeof(Request))) != sizeof(Request)) logMmboxd("error in reading FIFOTO\n", 1);
else logMmboxd("read from FIFOTO\n", 0);
close(fifoto);
printf("%s\n", request.name);
Requestobject. - Lightness Races in Orbit