私はすでにexecl()
コードで使用しており、うまく機能しました。
しかし、今回は、なぜうまくいかないのか本当にわかりません。
だからここに動作しないコードがあります
#include <unistd.h>
#include <stdio.h>
int main()
{
int i = 896;
printf("please\n");
execl("home/ubuntu/server/LC/admin/admin", (char*)i, NULL);
printf("i have no idea why\n");
return 0;
}
そして、ここに admin.c があります
#include <stdio.h>
#include <stdlib.h>
#include <sys/msg.h>
#include <string.h>
#include <unistd.h>
int main(int argc, char *argv[])
{
int mid = argv[0];
printf("hi from child\n");
printf("%d\n", mid);
return 0;
}
もちろん、admin.c を admin にコンパイルしました。パスは間違っていません。
>ls
admin admin.c why why.c
>pwd
/home/ubuntu/server/LC/admin
>./admin
hi from child
-1180858374
>./why
please
i have no ida why
なぜそれがうまくいかないのか誰にも分かりますか?