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

Reply via email to