/pee.c (a8565c0245914cfa8bc8fb2c46dcb83c7f1dd8ab) (1188 bytes) (mode 100644) (type blob)
#include <stdlib.h>
#include <stdio.h>
#include <sys/types.h>
#include <sys/wait.h>
/* Licensed under the GPL
* Copyright (c) Miek Gieben, 2006
*/
/* like tee(1), but then connect to other programs using
* pipes _and_ output to standard output
*/
int
close_pipes(FILE **p, size_t i)
{
int ret=EXIT_SUCCESS;
size_t j;
for (j = 0; j < i; j++) {
int r = pclose(p[j]);
if (WIFEXITED(r))
ret |= WEXITSTATUS(r);
else
ret |= 1;
}
return ret;
}
int
main(int argc, char **argv) {
size_t i, r;
FILE **pipes;
char buf[BUFSIZ];
pipes = malloc(((argc - 1) * sizeof *pipes));
if (!pipes)
exit(EXIT_FAILURE);
for (i = 1; i < argc; i++) {
pipes[i - 1] = popen(argv[i], "w");
if (!pipes[i - 1]) {
fprintf(stderr, "Can not open pipe to '%s\'\n", argv[i]);
close_pipes(pipes, argc);
exit(EXIT_FAILURE);
}
}
argc--;
while(!feof(stdin) && (!ferror(stdin))) {
r = fread(buf, sizeof(char), BUFSIZ, stdin);
for(i = 0; i < argc; i++) {
if (fwrite(buf, sizeof(char), r, pipes[i]) != r) {
fprintf(stderr, "Write error to `%s\'\n", argv[i + 1]);
close_pipes(pipes, argc);
exit(EXIT_FAILURE);
}
}
}
exit(close_pipes(pipes, argc));
}
Mode |
Type |
Size |
Ref |
File |
100644 |
blob |
44 |
5d425843f23db3bb6970a55c953f345e3a8c8fe1 |
.gitattributes |
100644 |
blob |
17989 |
b7b5f53df1412df1e117607f18385b39004cdaa2 |
COPYING |
100644 |
blob |
1113 |
4f8af10c6b1b101e9fb3046bc3164ae1d6f5ab2d |
Makefile |
100644 |
blob |
1191 |
c60df6c95587ab2183d3a3114f3d7de231433a79 |
README |
100755 |
blob |
806 |
83a4eed00f82e3bcc81856149b47cffc4091f9aa |
check-isutf8 |
100755 |
blob |
1333 |
fe012f6f144b0370cca7020a131564a07971a0ee |
chronic |
100755 |
blob |
3050 |
99a4de6125bfdcec457529419eb700c0707e9fe6 |
combine |
040000 |
tree |
- |
b2d92708c4ffa1a73dae3e148fe7c68641526e84 |
debian |
100644 |
blob |
5102 |
d2f68a1ac365a0c8df88d4b64a400f63fffe4c69 |
errno.c |
100644 |
blob |
3878 |
e045f7e90d9f774bbc76c7cda0d81136d1200533 |
errno.docbook |
100644 |
blob |
13328 |
adf9f8748240c9924718bc9af0433784efdcc936 |
ifdata.c |
100644 |
blob |
7339 |
47f414301c47a69a81694c3b5affd71261207d49 |
ifdata.docbook |
100644 |
blob |
3061 |
e8bc10048f75efccf7db285eef3db76cc73417ba |
ifne.c |
100644 |
blob |
2465 |
e9c45692b7b95e77ea0184732f883d278c9415f6 |
ifne.docbook |
100644 |
blob |
7598 |
971112457c834ca97fdecb5880dc7c749dc8ca44 |
isutf8.c |
100644 |
blob |
3088 |
f0d0dbe51a3e1afc2616807d631bcd15ccd07cbe |
isutf8.docbook |
100644 |
blob |
5471 |
4925409bd548b058f07defe913724868801040df |
lckdo.c |
100644 |
blob |
3637 |
3fbf797b177d6933ce106cce2e8368e5094702ab |
lckdo.docbook |
100644 |
blob |
5783 |
d183d04a5f249072da9be3e1d30d4e205e1be021 |
mispipe.c |
100644 |
blob |
2569 |
cc966c8b0b9b4c911cb0587055c100dbca2a7d41 |
mispipe.docbook |
100644 |
blob |
5374 |
b9d7ab2a6aac22da55ce228bae7de6f2c7b03f51 |
parallel.c |
100644 |
blob |
3703 |
bd490e2d3cde03942366b58b7221cac0229f45ee |
parallel.docbook |
100644 |
blob |
1188 |
a8565c0245914cfa8bc8fb2c46dcb83c7f1dd8ab |
pee.c |
100644 |
blob |
2330 |
239f17fa72f5a225f026c209883fb35c6afa8b8b |
pee.docbook |
100644 |
blob |
7301 |
a53a2cf1906998c91533f5f5435ceeeeb1a7cd59 |
physmem.c |
100644 |
blob |
8715 |
969703f4bb99b50dec1a006fae373087a0a3845b |
sponge.c |
100644 |
blob |
2228 |
07a264572d0fd50bfb4fe549c633d485e002f99a |
sponge.docbook |
100755 |
blob |
3667 |
2a04392c49a4e3f6d1e99721f3634fc9b97f2e2a |
ts |
100755 |
blob |
4495 |
a77739f27d8cab6843471de92857fe5064f9ace4 |
vidir |
100755 |
blob |
1406 |
adc44a06055de36017d3395cf2756aa8fa170ad0 |
vipe |
100755 |
blob |
2518 |
98d1445a5f8106f04be690f85d802a7f6decfd13 |
zrun |
Hints:
Before first commit, do not forget to setup your git environment:
git config --global user.name "your_name_here"
git config --global user.email "your@email_here"
Clone this repository using HTTP(S):
git clone https://rocketgit.com/user/nicolas/debian.moreutils
Clone this repository using ssh (do not forget to upload a key first):
git clone ssh://rocketgit@ssh.rocketgit.com/user/nicolas/debian.moreutils
Clone this repository using git:
git clone git://git.rocketgit.com/user/nicolas/debian.moreutils
You are allowed to anonymously push to this repository.
This means that your pushed commits will automatically be transformed into a
merge request:
... clone the repository ...
... make some changes and some commits ...
git push origin main