Linux操作方法集接口(read,write)

简介: Linux操作方法集接口(read,write)

一:read,write

<asm-generic/uaccess.h>
应用层调用 read —>>> 应用层想读取数据 —>>> 这件事情是内核中驱动完成
—>>> copy_to_user
应用层调用 write —>>> 应用层想写取数据 —>>> 这件事情是内核中驱动完成
—>>> copy_from_user


20200227203829342.png

20200227203900246.png


//驱动中的read、write接口实现
ssize_t demo_read(struct file *filp, char __user *buf, size_t size, loff_t *off){ 
if(size > kbufcount)
{   
size = kbufcount; 
} if(copy_to_user(buf, k_buf, size)){   
printk(KERN_ERR "copy_to_user failed...\n");    
return -EAGAIN; 
} 
kbufcount = 0;  
printk(KERN_DEBUG "---%s---%s---%d---\n",__FILE__,__func__,__LINE__); 
return size;}ssize_t demo_write(struct file *filp, const char __user *buf, size_t size, loff_t *off){ 
if(size > KBUFSIZE-1){    
size = KBUFSIZE-1;  
} 
if(copy_from_user(k_buf,buf, size)){    
printk(KERN_ERR "copy_from_user failed...\n");    
return -EAGAIN; 
}
kbufcount = size; 
printk(KERN_INFO "demo_write->copy_from_user:%s\n",k_buf);    
printk(KERN_DEBUG "---%s---%s---%d---\n",__FILE__,__func__,__LINE__); 
return size;
}
//应用层测试代码char buf[] = "aaaaaaaaaaaaa";
char r_buf[32];
int main(int argc, const char *argv[]){    int fd = open("/dev/cdev_demo2",O_RDWR);    
if(fd < 0){       
perror("open");        
return -1;    
}
write(fd,buf,strlen(buf));                                                                                                                              close(fd);
    return 0;}
相关文章
|
2月前
|
算法 Linux C++
【Linux系统编程】深入解析Linux中read函数的错误场景
【Linux系统编程】深入解析Linux中read函数的错误场景
225 0
|
2月前
|
Linux API 数据安全/隐私保护
【Linux 用户管理】Linux用户身份信息获取与管理API 接口
【Linux 用户管理】Linux用户身份信息获取与管理API 接口
37 0
|
2月前
|
域名解析 网络协议 Linux
【Shell 命令集合 网络通讯 】Linux 设置和管理网络接口配置信息 netconfig命令 使用指南
【Shell 命令集合 网络通讯 】Linux 设置和管理网络接口配置信息 netconfig命令 使用指南
121 1
|
2月前
|
Shell Linux C语言
【Shell 命令集合 网络通讯 】Linux 向指定用户或终端发送消息 write命令 使用指南
【Shell 命令集合 网络通讯 】Linux 向指定用户或终端发送消息 write命令 使用指南
68 0
|
2月前
|
网络协议 Linux
在Linux中,管理和配置网络接口
在Linux中管理网络接口涉及多个命令,如`ifconfig`(在新版本中被`ip`取代)、`ip`(用于网络设备配置)、`nmcli`(NetworkManager的CLI工具)、`nmtui`(文本界面配置)、`route/ip route`(处理路由表)、`netstat/ss`(显示网络状态)和`hostnamectl/systemctl`(主机名和服务管理)。这些命令帮助用户启动接口、设置IP地址、查看连接和路由信息。不同发行版可能有差异,建议参考相应文档。
54 4
|
2月前
|
Linux 网络安全
Linux(16)ssh_exchange_identification: read: Connection reset by peer问题
Linux(16)ssh_exchange_identification: read: Connection reset by peer问题
28 0
|
2月前
|
监控 网络协议 Linux
【Shell 命令集合 网络通讯 】Linux 显示网络 连接、路由表和网络接口信息 netstat命令 使用指南
【Shell 命令集合 网络通讯 】Linux 显示网络 连接、路由表和网络接口信息 netstat命令 使用指南
116 1
|
2天前
|
存储 安全 Linux
深入解析Linux的`read`命令
`read`命令在Linux shell中用于从标准输入读取数据并赋值给变量。它可以用于交互式脚本,提供用户输入或读文件。关键选项包括`-p`(提示用户)、`-r`(禁用转义)、`-s`(静默模式,适合密码)、`-t`(超时)和`-n`(读取特定字符数)。示例包括基本输入、带提示的密码输入和设置超时的输入。注意安全处理密码和验证用户输入。
|
2月前
|
Ubuntu 网络协议 Linux
|
2月前
|
网络协议 Linux 开发工具
Linux中 /etc/sysconfig/network-scripts/ifcfg-<interface> 网络接口配置 详解 看这一篇够用
Linux中 /etc/sysconfig/network-scripts/ifcfg-<interface> 网络接口配置 详解 看这一篇够用