c - 记录对文件的函数调用并将此日志文件用作程序代码

标签 c logging function call

我有一个用 C 编写的应用程序,它通过将函数调用写入文件来记录它们。 现在我需要在另一个 C 应用程序中重新使用这些记录的函数调用(这也是记录日志的原因)。

除了其他事情之外,这个应用程序应该做的正是记录的事情。

例子: 第一个应用程序写的MYLOGFILE

printf("Starting main process w/ pid %d\n", (int)getpid());
    Display *dsp = XOpenDisplay( NULL );

然后第二个应用程序将执行记录并从文件中获取的函数调用。

有什么想法可以实现吗?

最佳答案

本质上,您想生成 C 代码并执行该代码,对吗?如果是这种情况,您可以检查TCC它可以作为一个库使用,并提供了这个功能。

当然假设您的平台是受支持的平台之一。

也就是说,我宁愿避免发出 C 代码并让另一个应用程序读取、编译和执行它。我会建议您执行以下操作之一:

  1. 发明你自己的语言并在你的日志文件中发出它。然后为该语言编写解释器,让其他程序读取和解释日志文件。

  2. 在您的第二个程序中嵌入一种脚本语言(即 Lua )并以该语言发出您的日志文件。

哪种解决方案最有效取决于您必须在日志文件中描述的任务的复杂性。

作为最后的解决方案,假设您想要发出 C,您可以考虑使用 system() 来调用您的编译器而不是编译后的程序。但我真的很劝阻你这样做!

关于c - 记录对文件的函数调用并将此日志文件用作程序代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2072594/

相关文章:

客户端和服务器无法通信

c - UNIX 网络编程中的前缀是什么意思?

从函数式编程范式中记录

斯卡拉 : eta expansion of function values (not methods)

php - 我怎样才能让 PHP 避免惰性求值?

c++ - 使用 gcc 进行静态和动态链接

c - ASCII 字符未打印出来

java - log4j2 RollingFile Appender 一次仅一行

asp.net - 如何发布使用 Enterprise Library 进行日志记录的 Web 应用程序?

function - 处理库中回调的推荐方法