title: Implementing a Unix shell in C: check if file is executable
body: <p>I am working on implementing a Unix shell in C and I'm currently dealing with the problem of relative paths. Notably while inputting commands. For now I have to enter the full path of the executable every time, when I would much rather simply put "ls" or "cat". </p>
  
  <p>I have managed to get the $PATH env variable. My idea is to split the variable at the ":" character, then append each new string to the command name and check if the file exists and is executable. </p>
  
  <p>For example if my PATH is:
  "/bin:/usr/bin" and I input "ls", I would like the program to check first if "/bin/ls" exists and is executable, if not move on to "/usr/bin/".</p>
  
  <p>Two questions:</p>
  
  <p>1) Is it a good way to do it? (Doesn't it have to be necessarily the best. I just want to make sure that it would work. </p>
  
  <p>2) More importantly, <strong>How can I check in C, if a file exists and is executable?</strong></p>
  
  <p>I hope I'm clear enough, and ... well thanks :)</p>