ChinaUnix.net
相关文章推荐:

linux 驱动 write 函数

本帖最后由 飘扶摇 于 2011-05-26 23:41 编辑 ssize_t xxx_read(struct file *filp, char *buffer, size_t count, loff_t *ppos); ssize_t xxx_write(struct file *filp,const char *buffer, size_t count); 上面两个函数中的"buffer" 是什么时候分配出来的,分配在什么地方,是内核分配的吗?

by 飘扶摇 - 驱动开发 - 2011-06-18 16:46:50 阅读(5928) 回复(9)

相关讨论

本帖最后由 yaoming1718 于 2010-12-09 23:30 编辑 本人初学linux 看《linux环境下c编程指南》一书 对书中例子有疑问,向大家请教 代码如下 利用write函数实现一个write_buffer函数,创建文件“test.txt”,从键盘输入字符串写入文件,成功后打开文件为乱码,求解答? 直接用write函数的话,打开test.txt则能看到正常显示。 #include #include #include #include #includ...

by yaoming1718 - Linux环境编程 - 2010-12-10 12:41:37 阅读(2715) 回复(3)

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博客,如果查...

by ferris2005 - Linux文档专区 - 2010-01-22 10:15:59 阅读(11773) 回复(0)

通过讨论今天终于确定,linux的系统调用write不能实现在文本文件的中间进行添加操作。它可以实现在文件尾部添加,和在文件的中间覆盖的功能。我想只要清楚内核中文件系统原理的人都会很容易理解这一点。:) 本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/6889/showart_111731.html

by lc0060305 - Linux文档专区 - 2006-05-12 14:33:54 阅读(888) 回复(0)

本帖最后由 山丘之王MK 于 2013-06-27 16:09 编辑 最近在写一个驱动,在write设备方法中,将用户空间的数据buf传送到内核空间的data1数组中,发现在应用程中调用write失败,返回-1,也就是根本没执行内核中的write设备方法,而read却是成功的。代码如下: static ssize_t my522_write(struct file *filp, const char __user *buf, size_t size, loff_t *ppos) { unsigned long p = *ppos; unsigned int count = size; in...

by 山丘之王MK - 驱动开发 - 2013-07-21 23:46:22 阅读(1171) 回复(5)

本人最近在写linux下的串口编程,是一个有串口的台式机和STM32的单片机板子的串口通信,板子上的串口通信是可行的,因为在window下的串口调试工具测试了,收发数据都是没有问题的,可是在linux下,read函数可以收到板子发来的数据,可是却不能向板子发送数据,板子中的程序是这样的:当收到数据是,做适当的延时后,把收到的数据再发给台式机。 read函数可以收到数据在终端显示,但是write函数将缓冲区的数据发送,返回值是要发的数...

by rudyfly - C/C++ - 2012-02-09 15:25:22 阅读(7356) 回复(5)

简单的读一个文件: #include #include #include #include int main(int argc,char **argv) { int fd = 0; int pid = 0; char buffer[20] = {'\0'}; char *read_buffer[20] = {'\0'}; //fd = open("/dev/hello",O_RDWR | O_CREAT | O_TRUNC); fd = open("/dev/hello",O_RDONLY ); //| O_NONBLOCK); printf("fd=%d\n",fd); if(fd #include #include #inclu...

by edwinrong - Linux文档专区 - 2011-02-19 11:09:10 阅读(2248) 回复(1)

open调用成功返回值是不是为0? read(filename,buffer,number),成功调用返回的值是不是读取的字节数number? write(filename,buffer,number),成功调用返回的值是不是写入文件的字节数number?

by wy200747055 - Linux环境编程 - 2012-06-12 12:54:19 阅读(5592) 回复(2)

linux文件设备与I/O:read/write函数 与 阻塞 Block 一,read 函数从打开的设备或文件中读取数据 #include ssize_t read(int fd, void *buf, size_t count); 返回值:成功返回读取的字节数,出错返回-1并设置errno,如果在调read之前已到达文件末尾,则这次 read返回0 读上来的数据保存在缓冲区buf 中,同时文件的当前读写位置向后移。注意这个读写位置和使用C标准I/O库时的读写位置有可能不同,这个读写位置是...

by wangxy-andy - Linux文档专区 - 2009-08-30 22:38:55 阅读(1369) 回复(0)

一,read 函数从打开的设备或文件中读取数据 #include ssize_t read(int fd, void *buf, size_t count); 返回值:成功返回读取的字节数,出错返回-1并设置errno,如果在调read之前已到达文件末尾,则这次 read返回0 读上来的数据保存在缓冲区buf 中,同时文件的当前读写位置向后移。注意这个读写位置和使用C标准I/O库时的读写位置有可能不同,这个读写位置是记在内核中的,而使用C标准I/O库时的读写位置是用户空间I/...

by 逼良为娼 - Linux文档专区 - 2009-08-27 11:24:54 阅读(925) 回复(0)

write函数(写入文件) 它的主要功能是:将某个文件缓冲区的数据,写入某个文件内。 系统调用格式: number = write(handle, buffer, n) ; write函数各个参数定义如下: l handle: 这是一个已经打开的文件句柄,表示将数据写入这个文件句柄所表示的文件内。 l buffer: 表示缓冲区,也就是把这个缓冲区的数据写入文件句柄所表示的文件内。 l n: 表示调用一次write操作,应该写如多少字符...

by cocoa1227 - Linux文档专区 - 2006-09-20 12:30:07 阅读(962) 回复(0)