char *ldname = argv[0];
size_t l = strlen(ldname);
ldname is the application elf which I want to load "hello.elf"
if (l >= 3 && !strcmp(ldname+l-3, "ldd")) ldd_mode = 1;
I am not sure why "ldd" string is compared here ?
argv++;
I don't pass any options ? Do I need to pass some option value ?
while (argv[0] && argv[0][0]=='-' && argv[0][1]=='-') {
char *opt = argv[0]+2;
*argv++ = (void *)-1;
if (!*opt) {
break;
} else if (!memcmp(opt, "list", 5)) {
ldd_mode = 1;
} else if (!memcmp(opt, "library-path", 12)) {
if (opt[12]=='=') env_path = opt+13;
else if (opt[12]) *argv = 0;
else if (*argv) env_path = *argv++;
} else if (!memcmp(opt, "preload", 7)) {
if (opt[7]=='=') env_preload = opt+8;
else if (opt[7]) *argv = 0;
else if (*argv) env_preload = *argv++;
} else {
argv[0] = 0;
}
}
I see the argv[0] is set to 0 so I am not able to see my application loaded ?
Thanks,
NJ