如果我在C中有一个字符串格式化程序,它只包含一个文件,是否可以找到该文件驻留在内存中的位置并让正在运行的程序处理自己的源文件?
当一个C程序运行时,是否可以定义一个指向实际代码的指针并进行处理?
我不想打开并读取源文件,而是从内存中执行。
答案 0 :(得分:1)
通常在运行之前编译C语言。这意味着源代码被转换为可执行的机器指令。因此,当您运行程序时,源代码可能在内存中不可用。
答案 1 :(得分:1)
您的意思是您的程序分析机器代码吗?还是C源?
你的C程序一旦编译就不再存在于C程序中,因此正在运行的程序将使用机器代码,而不是C语言。
为什么不想从磁盘中打开源文件?
答案 2 :(得分:1)
我不知道我是否正确理解了这个问题,但我试一试:
您可以使用__FILE__
指令访问C软件源文件的路径名。将它用于显示它以外的目的意味着它自上次编译以来没有移动或消失。
答案 3 :(得分:0)
当一个C程序运行时,是否可以定义一个指向实际代码并处理该指针的指针?
我想你可以通过使用函数指针获取函数的地址,并通过将其转换为整数指针来读取/写入。然而,由于种种原因,这将非常不寻常,困难和危险。对于编写代码,机器代码可以位于内存的只读部分。而且,您必须将机器代码写入内存。