linux c 写文件有关问题
linux c 写文件问题
从缓冲区接受的数据,要保存到文件怎么弄的。。下面代码哪儿有问题,咋写出来不对呢
------解决方案--------------------
1、单步调试看看数据是到哪里不对了;
2、一般更常用fopen/fclose/fread/fwrite等函数。
------解决方案--------------------
先单步调试。
------解决方案--------------------
在哪里出错,打印一下errno
这样写肯定数据不对,前面一部分会被文件名./123.txt替换掉的。
------解决方案--------------------
乱码并不代表一定是错的,也可能是编码方式的问题,直接看二进制数据最准确。
从缓冲区接受的数据,要保存到文件怎么弄的。。下面代码哪儿有问题,咋写出来不对呢
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替换掉的。
------解决方案--------------------
乱码并不代表一定是错的,也可能是编码方式的问题,直接看二进制数据最准确。