/pee.c (6ba38f78da10b61c8670b1c450fa769248ef84c4) (1040 bytes) (mode 100644) (type blob)
#include <stdlib.h>
#include <stdio.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
*/
void
close_pipes(FILE **p, size_t i)
{
size_t j;
for (j = 0; j < i; j++)
pclose(p[j]);
}
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, i);
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, i);
exit(EXIT_FAILURE);
}
}
}
close_pipes(pipes, argc);
exit(EXIT_SUCCESS);
}
Mode |
Type |
Size |
Ref |
File |
100644 |
blob |
17989 |
b7b5f53df1412df1e117607f18385b39004cdaa2 |
COPYING |
100644 |
blob |
1038 |
377121d56b79b9fbc42cabe86f4c3bae0d44bd2f |
Makefile |
100644 |
blob |
1097 |
343fd75e550b72c890ae095c283a835fed01713e |
README |
100755 |
blob |
806 |
83a4eed00f82e3bcc81856149b47cffc4091f9aa |
check-isutf8 |
100755 |
blob |
2607 |
a695935b24a5f2789c71a8affc4486859a41f737 |
combine |
040000 |
tree |
- |
994331f541c32b4d08c0bd0cb3b56c0cc08d7359 |
debian |
100644 |
blob |
13073 |
2de98a0b19372bff63be861b5adc755fa52fc74d |
ifdata.c |
100644 |
blob |
7130 |
86e90a8b2613fbd181618231a888484e3b5afda4 |
ifdata.docbook |
100644 |
blob |
3006 |
d8ecea9b8bc416154533572e1ce85a0385b7af10 |
ifne.c |
100644 |
blob |
2360 |
41fa9abe7a23b63f5afd110dcd0b3f78b0e4c531 |
ifne.docbook |
100644 |
blob |
7581 |
c5f5eeb667c425c3ef02516712c08acb72f3f557 |
isutf8.c |
100644 |
blob |
2894 |
f9c9eb59e9e15197e686a25a93d8785e4522696a |
isutf8.docbook |
100644 |
blob |
5471 |
4925409bd548b058f07defe913724868801040df |
lckdo.c |
100644 |
blob |
3261 |
8a0a4a863aba57a7a4d7b06b69414c25c21dfa17 |
lckdo.docbook |
100644 |
blob |
5783 |
d183d04a5f249072da9be3e1d30d4e205e1be021 |
mispipe.c |
100644 |
blob |
2292 |
b645b2c756f9b79cdde96a4a82c63bd9fd60fbff |
mispipe.docbook |
100644 |
blob |
5201 |
72f1426541972729a9cf8b9d3b7188e6c28e6d7a |
parallel.c |
100644 |
blob |
3497 |
b09350d3936847467354454846c0b78df97a7d87 |
parallel.docbook |
100644 |
blob |
1040 |
6ba38f78da10b61c8670b1c450fa769248ef84c4 |
pee.c |
100644 |
blob |
2082 |
18c753f289f920c9fddc06b191a2c7a031bbe391 |
pee.docbook |
100644 |
blob |
7301 |
a53a2cf1906998c91533f5f5435ceeeeb1a7cd59 |
physmem.c |
100644 |
blob |
8551 |
80733a22387f8290b77434f04a6a5dae099cc6b9 |
sponge.c |
100644 |
blob |
1753 |
185311f9aef253231febf3e0bb6b3a8dd04fc637 |
sponge.docbook |
100755 |
blob |
2515 |
ca150b4a36105ee55ca72920d6adce1aafd9a05a |
ts |
100755 |
blob |
4495 |
a77739f27d8cab6843471de92857fe5064f9ace4 |
vidir |
100755 |
blob |
1264 |
4874fe3a2c897482ca6e778e18b56a888fb8fdb9 |
vipe |
100755 |
blob |
2473 |
50026eb2735406f35fefda0ba6b12a0ca05c559c |
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