start terminal (sh) from execv return error : /bin/sh: /bin/sh: cannot execute binary file
start terminal (sh) from execv return error : /bin/sh: /bin/sh: cannot execute binary file
我正在尝试从 c 程序执行在 Linux 中启动新终端的命令 sh,但我收到此错误 /bin/sh: /bin/sh: 无法执行二进制文件时我正在使用 execv (),结果与 fork 相同,然后是 execv。
但是当我尝试系统命令成功时,我如何使用 execv 执行此命令?
作品:
int main (){
system("sh");
return 0;
}
不起作用:
int main (){
int ret=0;
char *argv[] = {"/bin/bash", "/bin/sh",NULL};
ret=execv(argv[0], argv);
printf("ret: %d \n",ret);
return 0;
}
此代码 return 此错误:
/bin/sh: /bin/sh: 无法执行二进制文件
cat aa.c
#include<stdio.h>
#include<unistd.h>
int main (){
int ret=0;
char *argv[] = {"/bin/bash", "-c","/bin/sh",'[=10=]'};
ret=execv(argv[0], argv);
printf("ret: %d \n",ret);
return 0;
}
gcc aa.c -o aa
./aa
sh-4.4$
还有……只是:
#include<stdio.h>
#include<unistd.h>
int main (){
int ret=0;
char *argv[] = {"/bin/sh",'[=11=]'};
ret=execv(argv[0], argv);
printf("ret: %d \n",ret);
return 0;
}
我正在尝试从 c 程序执行在 Linux 中启动新终端的命令 sh,但我收到此错误 /bin/sh: /bin/sh: 无法执行二进制文件时我正在使用 execv (),结果与 fork 相同,然后是 execv。 但是当我尝试系统命令成功时,我如何使用 execv 执行此命令?
作品:
int main (){
system("sh");
return 0;
}
不起作用:
int main (){
int ret=0;
char *argv[] = {"/bin/bash", "/bin/sh",NULL};
ret=execv(argv[0], argv);
printf("ret: %d \n",ret);
return 0;
}
此代码 return 此错误: /bin/sh: /bin/sh: 无法执行二进制文件
cat aa.c
#include<stdio.h>
#include<unistd.h>
int main (){
int ret=0;
char *argv[] = {"/bin/bash", "-c","/bin/sh",'[=10=]'};
ret=execv(argv[0], argv);
printf("ret: %d \n",ret);
return 0;
}
gcc aa.c -o aa
./aa
sh-4.4$
还有……只是:
#include<stdio.h>
#include<unistd.h>
int main (){
int ret=0;
char *argv[] = {"/bin/sh",'[=11=]'};
ret=execv(argv[0], argv);
printf("ret: %d \n",ret);
return 0;
}