Skip to content

Commit c76713f

Browse files
committed
Modifica stderr, fprintf()
1 parent 976c65f commit c76713f

1 file changed

Lines changed: 16 additions & 13 deletions

File tree

IPC_InterProcess_Communication/fifo/01_fifo.c

Lines changed: 16 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -44,19 +44,21 @@ int main(int argc, char *argv[]) {
4444

4545
/* Creazione del file speciale FIFO o named pipe */
4646
if (mkfifo(argv[1], PERMS) == -1) {
47-
fprintf(stderr, "Err: %d mkfifo()\n", errno, strerror(errno));
47+
fprintf(stderr, "[%ld]Err: mkfifo() %s: %s\n", (long)getpid(),
48+
argv[1], strerror(errno));
4849
exit(EXIT_FAILURE);
4950
}
5051

5152
/* Creazione di un nuovo processo */
5253
if ((pid = fork()) == -1) {
53-
fprintf(stderr, "Err: %d fork()\n", errno, strerror(errno));
54+
fprintf(stderr, "[%ld]Err: fork(): %s\n", (long)getpid(),
55+
strerror(errno));
5456
exit(EXIT_FAILURE);
5557
}
5658

5759
if (pid == 0)
5860
/* Processo figlio: si occupa di scrivere */
59-
return fifo_child(argv[1], "Scrittura del processo figlio sulla FIFO");
61+
return fifo_child(argv[1], "\"MESSAGGIO DAL PROCESSO FIGLIO\"\n");
6062
else
6163
/* Processo padre */
6264
return fifo_parent(argv[1]);
@@ -72,11 +74,12 @@ int fifo_child(const char *fifo_name, const char *id_str)
7274
int fd, rval;
7375
ssize_t str_size;
7476

75-
fprintf(stderr, "[%ld]: (processo figlio) apertura FIFO %s...",
77+
fprintf(stderr, "[%ld]: (processo figlio) apertura FIFO %s...\n",
7678
(long)getpid(), fifo_name);
7779

7880
while ((fd = open(fifo_name, O_WRONLY)) == -1) {
79-
fprintf(stderr, "[%ld]Err: %d open() FIFO scrittura\n", (long)getpid());
81+
fprintf(stderr, "[%ld]Err: open() FIFO scrittura %s: %s\n",
82+
(long)getpid(), fifo_name, strerror(errno));
8083
exit(EXIT_FAILURE);
8184
}
8285

@@ -91,44 +94,44 @@ int fifo_child(const char *fifo_name, const char *id_str)
9194
/* Calcolo della lunghezza del messaggio */
9295
str_size = strlen(buf) + 1;
9396

94-
fprintf(stderr, "[%ld]: scrittura...", (long)getpid());
97+
fprintf(stderr, "[%ld]: scrittura...\n", (long)getpid());
9598

9699
/* Si scrive 'buf' sulla FIFO */
97100
if ((rval = write(fd, buf, str_size)) != str_size) {
98101
fprintf(stderr, "[%ld]Err: scrittura pipe\n", (long)getpid());
99102
exit(EXIT_FAILURE);
100103
}
101104

102-
fprintf(stderr, "[%ld]: conclusione...", (long)getpid());
105+
fprintf(stderr, "[%ld]: conclusione...\n", (long)getpid());
103106

104107
return(EXIT_SUCCESS);
105108
}
106109

107110
/* Lo scopo della funzione fifo_parent() e' di consentire al processo padre di
108111
leggere da una named pipe. */
109-
fifo_parent(const char *fifo_name)
112+
int fifo_parent(const char *fifo_name)
110113
{
111114
char buf[BUF_SIZE];
112115
int fd, rval;
113-
ssize_t str_size;
114116

115-
fprintf(stderr, "[%ld]: (processo padre) apertura FIFO %s...",
117+
fprintf(stderr, "[%ld]: (processo padre) apertura FIFO %s...\n",
116118
(long)getpid(), fifo_name);
117119

118120
while ((fd = open(fifo_name, O_RDONLY)) == -1) {
119-
fprintf(stderr, "[%ld]Err: %d open() FIFO lettura\n", (long)getpid());
121+
fprintf(stderr, "[%ld]Err: open() FIFO lettura %s: %s\n",
122+
(long)getpid(), fifo_name, strerror(errno));
120123
exit(EXIT_FAILURE);
121124
}
122125

123-
fprintf(stderr, "[%ld]: lettura...", (long)getpid());
126+
fprintf(stderr, "[%ld]: lettura...\n", (long)getpid());
124127

125128
/* Lettura */
126129
if ((rval = read(fd, buf, BUF_SIZE)) == -1) {
127130
fprintf(stderr, "[%ld ]Err: lettura dalla pipe\n", (long)getpid());
128131
exit(EXIT_FAILURE);
129132
}
130133

131-
fprintf(stderr, "[%ld] lettura %.*s\n", (long)getpid(), rval, buf);
134+
fprintf(stderr, "[%ld]: lettura %.*s\n", (long)getpid(), rval, buf);
132135

133136
return(EXIT_SUCCESS);
134137
}

0 commit comments

Comments
 (0)