Where do the program write info to the fifo?

Create the fifo at L101:

then directly open and read from the fifo file:

file->buf->pcode_parsing_result

and finally return the pcode_parsing_result

but the ghidra_command.output() is not put into the fifo file,

how does it work ?

The same fifo_path is passed as an argument to the invoked program:

So ghidra will just open that path and write into it.

Yes, I also found the generate_ghidra_call_command function just now after looking at the code for a few minutes