To begin with FYI, I really struggled with the question before asking to simplify as much as I can around 1 hour and to increase the code's readability I neglect error checks.
I intend to communicate parent and child using PIPE. In the following program I do traverse given path and its subdirectories and calculate total size of what are included in the current directory individually. Upon completion, I write each directory's PID, size and path into `COMMON_FIFO` which will be read in `main()` eventually. My questions are following that
Can data corruption occur while writing `FIFO` cuz of its atomic size since the main process wait for all children to be reaped. Doesn't it? If yes, how can I solve the problem?
Is the written information(each directory's PID, size and path) guaranteed post-order since each directory is gone into orderly? If no, how can it be solved?
Let's modify the prior code's `walk_dir_and_calculate_sizes` function in which each directory's process calculates total sizes what the directory includes(regular files) to `WITH_PIPE_walk_dir_and_calculate_sizes` in which I intend to transmit each subdirectory's calculated size to its parent by using PIPE. For example, Directorey A includes B which includes C. Invidially `A's size is 10kb, B's is 5kb, C's 1kb`. In walk_dir_and_calculate_sizes gives result in `A's size is 10kb, B's is 5kb, C's 1kb` however in WITH_PIPE_walk_dir_and_calculate_sizes it yields `A's size is 16kb, B's is 6kb, C's 1kb` since C doesn't have child(subdirectory).
But in `WITH_PIPE_walk_dir_and_calculate_sizes` function I get *Bad File Descriptor* error while closing read end before writing to pipe. I'm really in dilemma. Why is my idea wrong? How can my intent be achieved Of course I'm not experienced guy, I can have another mistakes or oversights, please inform me.
Thanks a lot.
@Edit, by the way, I overlooked the point that I'm doing only one pipe as thinking one directory has one subdirectory BUT a directory can of course have more than one subdirectory. So I think we need more pipes to a parent.
Last edited by beginnerboy; 03-26-2019 at 01:49 PM..
Hi,
I have a script that runs a tar command to standard out then pipes to a gzip:
tar cfE - * | gzip -c > OUT.gz
At the moment, even if the tar fails (e.g. because of lack of disk space), the gzip still runs successfully.
Is there a way to make the whole line exit with a non-zero error... (6 Replies)
I'm new to scripting, and this forum has been invaluable in helping me out. I'm hoping I can get some personal help now though.
I have a korn script that takes a list of servers and either telnets or sshs into it (only some are set up for ssh). What I'm doing now is trying to telnet first, and... (10 Replies)
Hi ,
I am using below code to list the 6th,7th and 8th field of the file
ls -lrt test | awk '{print $6,$7,$8}'
output:
Nov 21 19:34
Now the problem here is that I want to do it without the usage of pipes as its now allowed in my production environment
Please let me know... (6 Replies)
Hello
while doing sftp over server "A" , i am getting a broken pipe error i.e
cat: write error: Broken pipe
what does that mean? please let me know if you want any other info on this.. (3 Replies)
hi guys, o have a big error
in this program but i cant solve
someone ?!
#include <stdlib.h>
#include <stdio.h>
#include <unistd.h>
#include <string.h>
int main(int argc, char *argv){
int cont = 2, posicao;
char geraArquivo= "|cat>>", espaco=" ";
char nomeArquivo, comando,... (11 Replies)
All,
I am using the below code
The C code :
if ((fp2=fopen(szout_fname,"r"))==NULL)
{
sprintf(stream_ptr1,"cat %s | sort -t, -rn -k 11,11 | awk -F\",\" '{ \
if ( \$3 ==\"%s\" ) {print... (0 Replies)
Hello,
Could any one help me how to find the Disk Usage for all the files in the running directory and the sub directories without the disk usage of the directory. I mean to say, i need only the file names without the size of the directories.
See, i used this command
du -a .|sort... (3 Replies)
Hi,
I am working on AIX 5.3 . I have client-server program which is in ProC.while sending packet to server i am getting error as broken pipe and program exiting.
please help?/? (1 Reply)
how can I find cpu usage memory usage swap usage and
I want to know CPU usage above X% and contiue Y times and memory usage above X % and contiue Y times
my final destination is monitor process
logical volume usage above X % and number of Logical voluage above
can I not to... (3 Replies)