-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
On Sunday 26 January 2003 01:12 pm, exits funnel wrote:
> Hello,
>
> I've written the following simple program:
>
> #include <cstdlib>
>
> int main( )
> {
> // /fff does not exist
> int return_value = system("ls -l /fff");
> cout << "\n Return Value: " << return_value << "\n";
> return return_value;
> }
>
> When I compile this and run it from bash I see "Return
> Value: 256" at stdout as I'd expect. However, I then
> immediately 'echo $?' and bash spits back '0' rather
> than '256.' Is this correct? Shouldn't $? hold the
> return value of the last program run from bash (ie, my
> c program?) Thanks in advance for any replies.
I'm not a coder. That doesn't stop me from trying, though. ;)
I can't even make the above code compile here.
(Red Hat 8.0, gcc-3.2)
$ g++ -o return return.cpp
return.cpp: In function `int main()':
return.cpp:7: `cout' undeclared (first use this function)
That said, it appears bash only handles return values up to and including
255. See below.
I did this in C as a test:
$ cat return.c
#include <stdio.h>
int main( )
{
int return_value = system("ls -l /fff");
printf("\n Return Value: %i\n", return_value);
return return_value;
}
[mfratoni@paradox mfratoni]$ gcc -o return return.c
[mfratoni@paradox mfratoni]$ ./return
ls: /fff: No such file or directory
Return Value: 256
[mfratoni@paradox mfratoni]$ echo $?
0
However, changing the return value to a smaller value, it works.
$ cat return.c
#include <stdio.h>
int main( )
{
int return_value = system("ls -l /fff");
printf("\n Return Value: %i\n", return_value);
return (return_value - 1);
}
[mfratoni@paradox mfratoni]$ gcc -o return return.c
[mfratoni@paradox mfratoni]$ ./return
ls: /fff: No such file or directory
Return Value: 256
[mfratoni@paradox mfratoni]$ echo $?
255
- --
- -Michael
pgp key: http://www.tuxfan.homeip.net:8080/gpgkey.txt
Red Hat Linux 7.{2,3}|8.0 in 8M of RAM: http://www.rule-project.org/
- --
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.0.7 (GNU/Linux)
iD8DBQE+NG3Bn/07WoAb/SsRAi91AKCVbgj3ewAEYZvVQrwLuDmAuio1tgCgiJyG
8kqlru15U7CZ3WRXI7G19Bk=
=L+qA
-----END PGP SIGNATURE-----
--
redhat-list mailing list
unsubscribe mailto:[EMAIL PROTECTED]?subject=unsubscribe
https://listman.redhat.com/mailman/listinfo/redhat-list