See man system. "The invoker waits until the shell has completed, then returns the exit status of the shell in the format specified by waitpid(3C)"
The man page says rc == -1 is exec() or vfork() failed. Print the errno to see why. To get the real return code, after the call to system() do something like: rc = WEXITSTATUS(rc); mspaper wrote: > rm and cp return non zero values sometimes. > > sprintf(tmp, "rm -rf %s/* 2>/dev/null\n", dest); > rc = system( tmp ); > rc = 1 > > sprintf(tmp, "cp -r %s/* %s 2>/dev/null", source, dest); > rc = system( tmp ); > rc = -1 > > The files exist and the paths are correct. I can do a manual copy but the > application fails. If I restart the application, this works fine. > Can anyone tell why this could happen? What do the return values mean? > > > This message posted from opensolaris.org > _______________________________________________ > opensolaris-code mailing list > opensolaris-code@opensolaris.org > http://mail.opensolaris.org/mailman/listinfo/opensolaris-code _______________________________________________ opensolaris-code mailing list opensolaris-code@opensolaris.org http://mail.opensolaris.org/mailman/listinfo/opensolaris-code