我有一个简单的任务要完成这个例程,它所要做的就是打开文件,从缓冲区附加数据并关闭。为此,我在 linux 机器上使用了“open”和“write”。虽然 'write()' 之后的返回码是正数,但文件大小并没有增加,而且总是空的。我正在拉扯我的头发来弄清楚下面的代码有什么问题。以为一些新鲜的眼睛可以散发出一些光芒。
#define BIT_Q_FILE ".\\bitq.dat"
int BQWrite(void *p)
{
int fd ;
int rc = -1 ;
fd = open(BIT_Q_FILE, O_RDWR | O_APPEND ) ;
if (fd < 0)
return -1;
memset(&BITQBuff,0,sizeof(typeBITQFile));
memcpy(&BITQBuff.pBitQueue,p,sizeof(typeBITQueue));
rc = write(fd, &BITQBuff,sizeof(typeBITQFile)) ;
close(fd) ;
if(rc!=sizeof(typeBITQFile))
{
return -1;
}
rc = sizeof(typeBITQueue);
return rc ;
}