Thanks.
Finally, It looks like I solved the problem.
1. when the 4ge program is called by system comand, the environment is different.
some env variables are missing, for example, INFORMIXDIR, INFORMIXSERVER, and LIBPATH.
The command line should set those env variables.
2. Then, The store procedure should use the c shell script to launch the 4ge program. In the script file, redirect the error message to a file.