open调用成功返回值是不是为0? read(filename,buffer,number),成功调用返回的值是不是读取的字节数number? write(filename,buffer,number),成功调用返回的值是不是写入文件的字节数number?
by wy200747055 - Linux环境编程 - 2012-06-12 12:54:19 阅读(5571) 回复(2)
首先推荐一个网址,讲解非常详细。 具体的函数原型如下: #include #include #include int open(const char *pathname, int flags); int open(const char *pathname, int flags, mode_t mode); 返回值:成功返回新分配的文件描述符,出错返回-1并设置errno #include ssize_t read(int fd, void *buf, size_t count); 返回值:成功返回读取的字节数,出错返回-1并设置errno,如果在调read之前已到达文件末尾,则这次read返回0 #...
本帖最后由 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博客,如果查...
功能说明:传送信息。 语 法:write [用户名称][终端机编号] 补充说明:通过write指令可传递信息给另一位登入系统的用户,当输入完毕后,键入EOF表示信息结束,write指令就会将信息传给对方。如果接收信息的用户不只登入本地主机一次,你可以指定接收信息的终端机编号。 本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u1/43969/showart_351347.html
通常,一个进程打开时,都会打开3个文件:标准输入、标准输出和标准出错处理。这3个文件分别对应文件描述符为0、1和2(也就是宏替换STDIN_FILENO、STDOUT_FILENO和STDERR_FILENO)。 不带缓存的文件I/O操作,这里指的不带缓存是指每一个函数只调用系统中的一个函数。主要用到5个函数:open、read、write、lseek和close。 open函数语法要点 所需头文件:#include//提供类型pid_t的定义 #include #include 函...