On quinta-feira, 7 de abril de 2016 08:47:05 PDT Duane wrote: > >> /* If WIFEXITED(STATUS), the low-order 8 bits of the status. */ > >> #define __WEXITSTATUS(status) (((status) & 0xff00) >> 8) > > > > BTW > > > > $ printf %x\\n 4531 > > 11b3 > > > > 0x11 is 17. So QProcess is correct. > > Thanks. Actually 4531 was a typo. It returns 4352 which is 1100. > So that explains it. std::system is returning it as an int. But then > again, QProcess::exitCode() is supposed to be returning it as an int as > well...
It does and is correct. Both have correct return values. Your code dealing with system wasn't. You were supposed to use WEXITSTATUS on the int it returned to obtain the return code. From the system(3) man page: In the last two cases, the return value is a "wait status" that can be examined using the macros described in waitpid(2). (i.e., WIFEXITED(), WEXITSTATUS(), and so on). -- Thiago Macieira - thiago.macieira (AT) intel.com Software Architect - Intel Open Source Technology Center _______________________________________________ Interest mailing list Interest@qt-project.org http://lists.qt-project.org/mailman/listinfo/interest