本帖最后由 yaoming1718 于 2010-12-09 23:30 编辑
本人初学linux 看《linux环境下c编程指南》一书 对书中例子有疑问,向大家请教
代码如下
利用write函数实现一个write_buffer函数,创建文件“test.txt”,从键盘输入字符串写入文件,成功后打开文件为乱码,求解答?
直接用write函数的话,打开test.txt则能看到正常显示。
#include
write函数本来是用来向一个文件句柄(file descriptor)输入内容的,通常的用法是: int fd; fd = open(filename, MODE); write(fd, buf, size); close(fd); 由于linux系统中有三个默认的句柄,即标准输入、标准输出、标准出错,对应标准C中的文件句柄(FILE)是stdin、stdout、stderr,在linux系统中是整数值0,1,2 因此,当我们往1句柄write内容时,就是在标准输出设备上显示内容,比如我们的终端上。 本文来自ChinaUnix博客,如果查...
clearerr(清除文件流的错误旗标) 相关函数 feof 表头文件 #include 定义函数 void clearerr(FILE * stream); 函数说明 clearerr()清除参数stream指定的文件流所使用的错误旗标。 返回值 fclose(关闭文件) 相关函数 close,fflush,fopen,setbuf 表头文件 #include 定义函数 int fclose(FILE * stream); 函数说明 fclose()用来关闭先前fopen()打开的文件。此动作会让缓冲区内的数据写...
串口操作函数 1.打开串口: fd = open("/dev/ttyf1", O_RDWR | O_NOCTTY | O_NDELAY); fcntl(fd, F_SETFL, 0); O_NOCTTY 选项防止程序受键盘控制中止操作键等影响. O_NDELAY 告诉 UNIX 不必另一端端口是否启用.(检测 DCD信号线状态) 2.往串口发送数据 n = write(fd, "ATZ\r", 4); 3.从串口读取数据 当以原始数据模式(raw data mode)打开串口时,read 系统调用将不管串口输入缓存里有 多少字符可读都返回.若没有数据,则...
我用stat函数获得一个文件最后修改的时间,得到的值似乎是该文件修改时间到现在时间所经过的秒数,请问我如何把这个秒数转换成例如20091020这样的年、月、日时间呢?
我找了几个函数都不好用,大家能帮帮我吗 谢谢大家! 以下是这个程序的代码
#include
串口操作函数 1.打开串口: fd = open("/dev/ttyf1", O_RDWR | O_NOCTTY | O_NDELAY); fcntl(fd, F_SETFL, 0); O_NOCTTY 选项防止程序受键盘控制中止操作键等影响. O_NDELAY 告诉 UNIX 不必另一端端口是否启用.(检测 DCD信号线状态) 2.往串口发送数据 n = write(fd, "ATZ\r", 4); 3.从串口读取数据 当以原始数据模式(raw data mode)打开串口时,read 系统调用将不管串口输入缓存里有 多少字符可读都返回.若没有数据,...