How to properly use system() to execute a command in C++?

ash picture ash · Jul 13, 2011 · Viewed 47.9k times · Source

I am new to C++ programming under Windows. I am trying to execute a command say cuobjdump in C++ code using the system() function:

system("C:\\program files\\nvidia gpu computing...\\cuobjdump.exe --dump-cubin C:\\..\\input.exe");

output:

Usage  : cuobjdump [options] <file>

This followed by the list of the options for cuobjdump.

When I execute this program I always get the cuobjdump help options displayed in the command line. It's as if the system call does not parse the filename. What am I doing wrong? I get the same result while using createprocess. The options --dump-cubin gives an error as if I mistyped it.

Answer

Grzegorz Szpetkowski picture Grzegorz Szpetkowski · Jul 13, 2011

Give a try with (that is, surrounding cuobjdump.exe path with ", properly escaped in C++ as \"):

system("\"C:\\program files\\nvidia gpu computing...\\cuobjdump.exe\" --dump-cubin C:\\..\\input.exe");