I use ubuntu for programming. I am learning C and till now all the programs I have made require me to open a terminal, compile using gcc and then execute the a.out file. Why can't I just click the a.out and run it? Why do I have to open a terminal and then execute it? Basically all the programs do is to take some input, manipulate it and produce an output. Input is taken through stdin and output through stdout. Is terminal the only way to connect to stdin and stdout? Does my question make sense?