我正在使用C语言在Vxworks中的嵌入式项目中记录功能。
这里我们共享内存,我们写日志并由另一台设备读取。
这里我希望所有输出都指向共享内存和stdout,即串行控制台。如何在Vxworks中使用任何第三方库并使用C语言来实现这一目标。
感谢您的时间和投入。
答案 0 :(得分:3)
将所有printf
替换为myprintf
(以下实施)。
myprintf
函数的作用与printf
完全相同,但会对该行进行一些进一步处理。
void myprintf(const char *format, ...)
{
char buffer[500]; // lines are restricted to maximum of 500 chars
va_list args;
va_start (args, format);
vsnprintf (buffer, 500, format, args);
va_end (args);
// here buffer contains the string resulting from the invocation of myprintf
// now here you can do whatever you want with the content of buffer
puts(buffer); // write to stdout
... code that writes the content of buffer to shared memory or whatever
}