是否存在执行程序和调用函数统一的系统?

时间:2009-04-25 13:58:51

标签: executable elf function-calls

我希望能够从shell中执行以下一项或多项操作:   - 从程序中调用任何函数,而不仅仅是main   - 传递不仅仅是字符串的参数(不仅仅是argv)   - 让程序返回不仅是int(来自main的返回码)   - 将返回值分配给shell级变量,以便能够将它们传递给其他程序

你明白了。 例如python toplevel允许这个用于python程序。 那么C ++呢? 或者Linux上的ELF替换允许这样做?

5 个答案:

答案 0 :(得分:2)

如果您正在寻找执行此操作的操作系统,则vxWorks shell / C解释器会执行此操作。

但是,它是vxWorks - 一个实时操作系统(没有GUI)。

答案 1 :(得分:2)

创建一个允许您通过动态库(如Windows下的DLL)按名称调用某些函数的应用程序并不太难,只要这些函数只采用有限的参数类型选择,例如整数,浮点数和固定字符串

但是,对于大多数C ++程序来说,这还不够。例如,假设您的C ++函数将动态字符串的s std :: map作为参数获取 - 您将如何创建映射,而不是在shell中对其内容进行任何说明?

但是如果你可以放弃C ++,那么有一种语言和操作系统完全符合你的建议 - Smalltalk。如果您对此范例感兴趣,请查看Squeak,这是免费软件。

答案 2 :(得分:2)

在Windows下,有RUNDLL32来调用DLL函数,例如

RUNDLL32.EXE USER32.DLL,SwapMouseButton

答案 3 :(得分:1)

你看过c-repl吗?

答案 4 :(得分:0)

系统必须完全解释,对吧?你怎么知道你所调用的东西的功能签名?