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
> [email protected]
> http://mail.opensolaris.org/mailman/listinfo/opensolaris-code
_______________________________________________
opensolaris-code mailing list
[email protected]
http://mail.opensolaris.org/mailman/listinfo/opensolaris-code