我正在开发一个函数,该函数执行特定的 powershell 命令,然后返回输出(如果与 EOF 不同)。该函数第一次正确执行,但第二次输出很奇怪,表明我的代码的某些部分存在缓冲区溢出。我找不到它。否则,我无法为这种行为找出其他可能的解决方案。
\n这是代码:
\nchar* buffer_reset(char* buffer);\nbool jobsreader (const char* printer_name, char* buffer);\n\nint main (int argc, char *argv[]) {\n char buffer[1000];\n char* pbuffer = buffer;\n jobsreader("Microsoft Print to PDF", pbuffer);\n pbuffer = buffer_reset(pbuffer);\n jobsreader("Microsoft Print to PDF", pbuffer);\n return 0;\n}\n\nchar* buffer_reset(char* buffer) {\n char* memory_reset = &buffer[0];\n char* start = memory_reset;\n while (*memory_reset != '\\0') {\n *memory_reset = '\\0';\n memory_reset++;\n }\n buffer = start;\n return buffer;\n}\n\nbool jobsreader (const char* printer_name, char* buffer) {\n FILE *output;\n const …Run Code Online (Sandbox Code Playgroud)