linux c 写文件有关问题
linux c 写文件问题从缓冲区接受的数据,要保存到文件怎么弄的。。下面代码哪儿有问题,咋写出来不对呢int clo
linux c 写文件问题
从缓冲区接受的数据,要保存到文件怎么弄的。。下面代码哪儿有问题,咋写出来不对呢
int clouddisk_WriteFile(const char *lpszFileName,const char *lpszSource,int nLen)
{
int hFile = 0;
if (-1 == (hFile = open(lpszFileName,O_RDWR | O_CREAT,S_IRUSR | S_IWUSR | S_IXUSR)))
{
return 0;
}
size_t nWriteCount = 0;
size_t nCount = nLen;
size_t nSize = write(hFile,lpszFileName,nLen);
nWriteCount = nSize;
while (nWriteCount < nCount)
{
nSize = write(hFile,lpszSource + nWriteCount,nLen - nWriteCount);
nWriteCount += nSize;
}
close(hFile);
return 1;
}
[解决办法]1、单步调试看看数据是到哪里不对了;
2、一般更常用fopen/fclose/fread/fwrite等函数。
[解决办法]先单步调试。
[解决办法]在哪里出错,打印一下errno
这样写肯定数据不对,前面一部分会被文件名./123.txt替换掉的。
[解决办法]乱码并不代表一定是错的,也可能是编码方式的问题,直接看二进制数据最准确。