170得票9回答
执行二进制文件时出现“没有这个文件或目录”的错误

我正在Ubuntu 9.10 x86_64上安装一个二进制Linux应用程序。该应用附带了一个旧版本的gzip(1.2.4),它是为一个更旧的内核编译的:$ file gzip gzip: ELF 32-bit LSB executable, Intel 80386, version 1 (...

39得票4回答
内核如何在Linux下运行可执行二进制文件?

内核如何在 Linux 下运行可执行二进制文件? 这似乎是一个简单的问题,但有谁可以帮助我深入挖掘?文件是如何加载到内存中并启动执行代码的? 有人能够帮助我一步一步地讲解发生了什么吗?

18得票1回答
Python的sys.executable为空。

我正在测试使用os.execve和虚拟环境进行一些恶作剧。我遇到的问题是,如果我用另一个Python子进程替换当前的Python进程,则sys.executable为空。 下面的示例展示了发生了什么(在Python shell中运行此示例):import os, sys print(sys.e...

18得票3回答
理解execve的要求并设置环境变量

我们在解释我们的老师的话时遇到了很多麻烦。我们请求澄清,然后从他那里得到了以下回复: 1. 对于execve,使用您设置的环境并创建一个内置命令来生成/bin/bash的子shell,这样您就可以使用env查看导出的变量。 (他在谈论在此处创建自己的环境变量。) 2. 是的,请创建您自己的...

10得票3回答
在管道中执行execve("/bin/sh", 0, 0);

我有以下示例程序:#include <stdio.h> int main(int argc, char ** argv){ char buf[100]; printf("Please enter your name: "); fflush(stdout)...

10得票1回答
execve如何调用动态链接器/装载器(ld-linux.so.2)

我使用gcc编译和链接最基本的C程序test.c:int main() { } 正如预期的那样,输出是一个动态链接的可执行文件:$ file test test: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically ...

8得票1回答
在汇编语言中,正确调用带有参数的execve应该如何实现?

我正在尝试使用 execve 执行以下操作:/ bin // nc -lnke / bin / bash -p 4444 阅读 execve 的手册时,我看到以下要求: int execve(const char *filename, char *const argv[], ...

8得票3回答
为什么在execve中需要将命令名作为路径和参数列表两次传递?

我有一个由我的教授编写的程序,它使用execve()打印当前工作目录(pwd),但是我不理解其中的参数。 pid_t pid = fork(); if(pid <0) perror(NULL); else if(pid == 0) { char*argv[] = {"pw...

7得票2回答
execve-没有这样的文件或目录?

我遇到了一些execve的问题。 我正在尝试制作一个可以像bash shell一样运行的shell,但是我在forked child执行命令时遇到问题。 这里是我为child编写的代码:cmd是用户输入的命令的char *。 但是,当我运行此程序时,perror会报错: execve err...