#define _POSIX_C_SOURCE 200112L
#include <stdio.h>
#include <errno.h>
#include <string.h>
#include <unistd.h>
#include <sys/types.h>
int main( int argc, char * argv[ ] , char * envp[ ] )
{
char self[ 1024 ] ;
size_t rc = readlink( "/proc/self/exe" , self, sizeof ( self) ) ;
if ( rc != - 1 ) {
self[ rc] = '\0 ' ;
} else {
}
printf ( "Real executable name is '%s'\n " , self
) ;
for ( int i = 0 ; i < argc; i++ ) {
printf ( " argv[%i] = \" %s\" \n " , i
, argv
[ i
] ) ; }
printf ( "(Re)executing '%s'...\n " , argv
[ 0 ] ) ;
execve( argv[ 0 ] , ( char * [ ] ) { "huipizda" , "arg1" , "arg2" , NULL} , envp) ;
fprintf ( stderr
, "Unable to run '%s' (%i): %s\n " , argv
[ 0 ] , errno
, strerror ( errno
) ) ; }
I2RlZmluZSBfUE9TSVhfQ19TT1VSQ0UgMjAwMTEyTAojaW5jbHVkZSA8c3RkaW8uaD4KI2luY2x1ZGUgPGVycm5vLmg+CiNpbmNsdWRlIDxzdHJpbmcuaD4KI2luY2x1ZGUgPHVuaXN0ZC5oPgojaW5jbHVkZSA8c3lzL3R5cGVzLmg+CgppbnQgbWFpbihpbnQgYXJnYywgY2hhciAqYXJndltdLCBjaGFyICplbnZwW10pCnsKICAgIGNoYXIgc2VsZlsxMDI0XTsKICAgIHNpemVfdCByYyA9IHJlYWRsaW5rKCIvcHJvYy9zZWxmL2V4ZSIsIHNlbGYsIHNpemVvZihzZWxmKSk7CiAgICBpZiAocmMgIT0gLTEpIHsKICAgICAgICBzZWxmW3JjXSA9ICdcMCc7CiAgICB9IGVsc2UgewogICAgICAgIHN0cmNweShzZWxmLCAiPHVua25vd24+Iik7CiAgICB9CgogICAgcHJpbnRmKCJSZWFsIGV4ZWN1dGFibGUgbmFtZSBpcyAnJXMnXG4iLCBzZWxmKTsKCiAgICBmb3IgKGludCBpID0gMDsgaSA8IGFyZ2M7IGkrKykgewogICAgICAgIHByaW50ZigiICAgIGFyZ3ZbJWldID0gXCIlc1wiXG4iLCBpLCBhcmd2W2ldKTsKICAgIH0KCiAgICBwcmludGYoIihSZSlleGVjdXRpbmcgJyVzJy4uLlxuIiwgYXJndlswXSk7CiAgICBmZmx1c2goc3Rkb3V0KTsKICAgIAogICAgZXhlY3ZlKGFyZ3ZbMF0sIChjaGFyICpbXSkgeyAiaHVpcGl6ZGEiLCAiYXJnMSIsICJhcmcyIiwgTlVMTH0sIGVudnApOwogICAgZnByaW50ZihzdGRlcnIsICJVbmFibGUgdG8gcnVuICclcycgKCVpKTogJXNcbiIsIGFyZ3ZbMF0sIGVycm5vLCBzdHJlcnJvcihlcnJubykpOwp9Cg==