Skip to content

Tag: pipe

Multi-Process Shell in C, using Pipes [Linux]

I’m trying to code a shell in C that supports multi-pipe process handling, depending on the amount of separate processes given by the user, and each separated by a “|” symbol. The shell forks the amount of processes into a child for each process. Here’s an example: result: 1 But I’m having trouble with communicating between children and finally to

Is pipe in linux asynchronous or not?

I thought that when i running below commands Linux process will be when sleep 10 is end -> sleep 2 (when sleep 2 is end)-> sleep 5 that’s i thought But in Linux bash sleep 10, sleep 2, sleep 5 are in ps same time Standard output of sleep 10 process will be redirected to sleep 5’s process But, in

C close() : Invalid argument

Sorry per advance for my english, i’m not english native and be indulgent i’m also a student. I’m trying to recreate the pipe function in C, but i have a problem when i try to close pipe fd before the dup2(), the function close() return me an error ├Ćnvalid argument, i have already check if my fd is valid and

Explain pipe and fork output

I am dealing with pipe and fork in Linux for the first time and I would be happy if someone could explain to me the output of the following program: (which line of code causes the output and is it through the son process or the parent process) The output of the program is: Answer fork() creates a child process

clear a Pipe in C

I’m sending data from one process to another pipe and I want to clear the pipe after reading. Is there a function in C that can do this ? Answer Yes. It’s just the read function offered by the stdio library. You have to invoke it as many times as you need in order to be sure the pipe will

Why does read block on a pipe until the write end is closed?

I’m trying to bolster my understanding of things related to fork, exec, dup, and redirecting stdin/stdout/stderr by writing the following popen-type function: Compilation and execution: My question is about the read() – I don’t quite grok why does the read() is seemingly block until the child process has completed (thereby closing its end of the pipe)? Is it coincidence? You

Pipe between a C and a Python program

I am currently trying to write a C program that interacts with hardware, I have chosen so since the manufacturer of the hardware supplies with a C SDK for this hardware. However, I want this C program to output the data it receives from the hardware (a sensor for example) to a pipe so that I can write a Python

What end of stream dup2 change?

What end of the stream does dub2 ( ) change is it the end the OS is connected to or the end connected to application . this code redirect output to file and not the screen which means that input side of stream is connected now to the file right . Answer Before the dup2(), the file descriptor table for

Pipe not reading what it should

So I have 2 processes, a client who gets 2 operands and one operation (either + or -), sends them to the second process, the server, who makes the computation, then sends the result back to the client. This is the client: This is the server: There are 3 outcomes to this code. First one is that it works, this