write函数会末尾写0(write返回0)
write()函数的返回值是什么
write有两种用法。一种是:
int write(int handle, void *buf, int nbyte);
handle 是文件描述符;
buf是指定的缓冲区,即指针,指向一段内存单元;
nbyte是要写入文件指定的字节数;返回值:写入文档的字节数(成功);-1(出错)
write函数把buf中nbyte写入文件描述符handle所指的文档,成功时返回写的字节数,错误时返回-1.
另一种是:write(const char* str,int n)
str是字符指针或字符数组,用来存放一个字符串。n是int型数,它用来表示输出显示字符串中字符的个数。
write("string",strlen("string");表示输出字符串常量

C语言write函数的返回值问题
大多数情况下,write成功后返回的写入字节数都等于你传入的长度。
但是如果你要写的长度超过了的文件的最大可能时,比方说,你的磁盘还剩下128个字节,这时你向磁盘上的某个文件一次性写512个字节,返回值就是128,只有前128个字节成功写入。
再比如,你用write写的不是一个普通文件,而是设备文件/socket等,那也可能返回值小于你指定的值,这就可能是具体设备的限制等,比如写入的数量超过了缓冲大小等。
c++ write函数问题
write(char*,length)是以二进制字节的形式写入文件的,而用记事本打开的文件是以GBK或者是unicode编码格式解码文件内容的,
一般情况下,读文件时的编码格式和写入文件的时的编码格式一样,才能显示正确。
如果需要61029的显示效果,不妨这样
ofstream file("date.txt");
filedate.mondaydate.daydate.year;
怎么用WriteFlie函数问题
ASCII字符串写进去,不应当是乱码.
下面,用MS VC++ 编译器,按 C 语言 写法,没问题。
#includewindows.h
#includestdio.h
#define DWORD unsigned long int
void main()
{
HANDLE hfile;
char a[]={"abcde"};
char b[]={"12345"};
DWORD dw;
DWORD dwPtr; // 按 C 语言 写法,在这里声明
hfile=CreateFile("D:\\jeff\\v.dat",GENERIC_READ | GENERIC_WRITE,
FILE_SHARE_WRITE | FILE_SHARE_READ,0,OPEN_ALWAYS,FILE_ATTRIBUTE_NORMAL,0);
WriteFile(hfile,a,sizeof(a),dw,NULL);
dwPtr=SetFilePointer(hfile,0,NULL,FILE_END);
WriteFile(hfile,b,sizeof(b),dw,NULL);
CloseHandle(hfile);
}