所以这是关于我修复的旧问题。
现在的问题是,当我运行我的程序时(代码如下)......
#include <stdio.h>
#include <memory.h>
#include <string>
#include <iostream>
using namespace std;
#include "timesync.h"
FILE * CTimeSync::pipe = NULL;
int CTimeSync::TimeSyncCheck()
{
char szPipeBuffer [200];
string strPipeOutput;
memset( szPipeBuffer, 0, sizeof(szPipeBuffer) );
CTimeSync::pipe = popen( "ntpq -np", "r" );
if ( CTimeSync::pipe )
{
while ( !feof( CTimeSync::pipe ) )
{
if ( fgets( szPipeBuffer, 200, CTimeSync::pipe ) != NULL )
{
// memset( szPipeBuffer, 0, sizeof(szPipeBuffer) );
strPipeOutput.append(szPipeBuffer);
}
}
pclose(CTimeSync::pipe);
}
cout << strPipeOutput;
cout << "abc\npqr\nxyz\n123" << endl; //test string
return 1; //ERROR
}
eclipse调试模式的运行putput和控制台(linux)中的运行putput是不同的。
remote refid st t when poll reach delay offset jitter
abc
pqr
xyz
123
终端运行(./main)
remote refid st t when poll reach delay offset jitter
=======================================================================================
*10.92.1.200 LOCAL(1) ...
abc
pqr
xyz
123
造成这种情况的原因是什么?