title: Are system() calls evil?
body: <p>I am designing an C++ app that, among other things, executes a few scripts every now and then. The app should be efficient and preferably platform independent.</p>
  
  <p>The issue is, however: is there a reason one shouldn't use <code>system()</code> call for launching scripts and use, for example, POSIX facilities instead? The discussion on the matter that I've seen so far usually boils down to:</p>
  
  <ol>
  <li><code>system()</code> is less flexible. (Fine with me)  </li>
  <li>It offers no control of the command being executed. (Fine with me, I just need a return value from the script)</li>
  <li>It is not quite platform independent. (Now, this would be a concern. I would really love to see an example where it behaves differently on different platforms)</li>
  <li>It is a security concern. (Again, this would be an issue. Can someone provide an example of a potential security problem with <code>system()</code>? )</li>
  <li>Any other issues?</li>
  </ol>