流的操作问题-走投无路了,请大侠指教!
走投无路了!发帖请教众大侠!
我新建了一个“流”,然后想向流里写东西,然后再从流里读东西出来,创建和写都成功了,但是读就是一直不成功。
我的底层类是glibc,实在查不出问题在哪里,只好来这问问众大侠意见,请多指教啊!
=================================================
char * szName = (PCHAR)pvData;
char str[100]="";
static char byfirst = 0;
if(byfirst == 1)
{
//roger.lin added for test.
if(NULL == (usbstdin = fopen("B:\\log.txt", "w+")))
fprintf(stderr, "##ErrCrLog\n");
else
fprintf(stderr, "##SCSCrLog\n");
///////////////////////////
}
if(byfirst<2)
{
MonitorParse( szName );
byfirst++;
return 0;
}
//fprintf(stdin, "%s", szName);
if(usbstdin != NULL)
{
if(0!=fseek(usbstdin, 0, 2))
fprintf(stderr, "## Err_SeekEnd\n");
if( 0 <= fputs(szName,usbstdin))
fprintf(stderr, "## - %s\n",szName);
else
fprintf(stderr, "## Err_fputs\n");
if(0 != fseek(usbstdin, 0, 0))
fprintf(stderr, "## Err_SeekBgn\n");
if(fgets(str, 50, usbstdin) == NULL)
{
INT iErr;
iErr = ferror( usbstdin );
clearerr( usbstdin );
rewind( usbstdin );
fprintf(stderr,"##fgetsErr %d, %d, %d\n",iErr,sizeof(char *),((int *)usbstdin)[1]);
}
else
{
MonitorParse( str );
}
}
else
{
fprintf(stderr, "##usbstdin_NULL\n");
}
[解决办法]
是不是没有用fflush()的原因?