Use switch with fork()

Allows dropping a local variable if the explicit PID is not needed
and it makes it clearer what happens.
Also, one should always strive for consistency for cases like these.
This commit is contained in:
FRIGN
2015-03-09 15:01:29 +01:00
parent 6f207dac5f
commit a8bd21c0ab
3 changed files with 11 additions and 14 deletions

7
tar.c
View File

@@ -47,17 +47,16 @@ static char filtermode;
static FILE *
decomp(FILE *fp)
{
pid_t pid;
int fds[2];
if (pipe(fds) < 0)
eprintf("pipe:");
pid = fork();
if (pid < 0) {
switch (fork()) {
case -1:
weprintf("fork:");
_exit(1);
} else if (!pid) {
case 0:
dup2(fileno(fp), 0);
dup2(fds[1], 1);
close(fds[0]);