There was this thing from 2017 that was supposedly a bug and fixed (didn't exactly apply to me). And also this from 2016-2018 that ultimately made me restart the gnome keyring daemon. Most people with this error have misconfigured permissions with their ssh keys or something...
But on those two cases Jupiter was opposed to Uranus, so your description doesn't apply (I sure hope that you understand that I am just kidding) :-) @AndrasDeak
What will be the default behaviour if I run this command in a terminal emulator in any Linux distribution (or any nix system)? Command: setsid sleep 10; exit. Does it exit quickly or wait for 10 seconds?
@Biswapriyo In Linux, it will exit immediately (also closing the interactive shell where the command was written), but the sub-shell that host the sleep command will persist for 10 seconds.
@Biswapriyo In most Unices, it would exit immediately, mostly because setised would not be found.
@barlop You have an unquoted command substitution on your command line. It will be split on the values of $IFS (and then filename globbing will happen on each generated word). If the output of your command does not contain any characters in $IFS (and no filename globbing characters), it will be passed as one single argument to your program.
No, the shell perofrms the splitting of any unquoted strings on the command line, applies filename globbing to the split-up words, and executes the given command with the generated words as arguments.
argv[] in your C code is exactly what the shell put into it.
The program receives argv[]. It does not split it up further automatically somehow.
The Unix shell splits the command line. It execute your command using execve() (most likely). This puts the command line arguments (not the command line itself) into argv[] for your command.
Which part of this is it you're having issues with?