Linux驱动程序:统计单词个数
2023-09-14 08:57:16 时间
p 本例为Android升读探索(卷1):HAL与驱动开发 一书中附带的示例程序。现粘贴出来,以便查阅。 /p
p 终端操作,可能用到的命令: /p
p /p
pre code_snippet_id= 383630 snippet_file_name= blog_20140609_1_9448752 name= code >本例为Android升读探索(卷1):HAL与驱动开发 一书中附带的示例程序。现粘贴出来,以便查阅。
恼人的Linux内存统计 前几天遇到一个客户反馈的内存问题,大致背景是自建的数据库业务,购买的是阿里云裸金属服务器总是遇到内存不足的情况,每次重启过不了多久就会不断报内存页分配失败,而且无论怎么扩容内存业务改善都不大
Linux中如何统计某个字符串个数? 在 Linux 系统下,有时候,我们可能要对一个日志文件进行分析。比如,分析日志文件中某个单词或者某个特殊字符串出现了多少次。
Linux基础命令---文本统计wc wc 统计文件的字节数、单词数、行数。 此命令的适用范围:RedHat、RHEL、Ubuntu、CentOS、SUSE、openSUSE、Fedora。1、语法 wc [选项] file2、选项列表 --version ...
终端操作,可能用到的命令:
insmond word_count.ko lsmod | grep word_count 查看驱动是否安装成功 rmmod word_count dmesg | grep word_cout | tail -n 2 查看有linux驱动输出的日志信息 cat /var/log/syslong | grep word_count | tail -n 2 modinfo word_count.ko 查看驱动的信息驱动源代码
#include linux/module.h #include linux/init.h #include linux/kernel.h #include linux/fs.h #include linux/miscdevice.h #include asm/uaccess.h
#define DEVICE_NAME "wordcount" static unsigned char mem[10000]; // 保存向设备文件写入的数据 static int word_count = 0; #define TRUE 255 #define FALSE 0 // 判断指定字符是否为空格(包括空格符、制表符、回车符和换行符) static unsigned char is_spacewhite(char c) if (c == 32 || c == 9 || c == 13 || c == 10) return TRUE; else return FALSE; static int get_word_count(const char *buf) int n = 1; int i = 0; char c = ; char flag = 0; // 处理多个空格分隔的情况,0:正常情况,1:已遇到一个空格 if (*buf == \0) return 0; // 第1个字符是空格,从0开始计数 if (is_spacewhite(*buf) == TRUE) n--; // 扫描字符串中的每一个字符 for (; (c = *(buf + i)) != \0; i++) // 只由一个空格分隔单词的情况 if (flag == 1 is_spacewhite(c) == FALSE) flag = 0; // 由多个空格分隔单词的情况,忽略多余的空格 else if (flag == 1 is_spacewhite(c) == TRUE) continue; // 当前字符为空格是单词数加1 if (is_spacewhite(c) == TRUE) n++; flag = 1; // 如果字符串以一个或多个空格结尾,不计数(单词数减1) if (is_spacewhite(*(buf + i - 1)) == TRUE) n--; return n; static ssize_t word_count_read(struct file *file, char __user *buf, size_t count, loff_t *ppos) unsigned char temp[4]; temp[0] = word_count 24; temp[1] = word_count 16; temp[2] = word_count 8; temp[3] = word_count; if (copy_to_user(buf, (void*) temp, 4)) return -EINVAL; printk("read:word count:%d", (int) count); return count; static ssize_t word_count_write(struct file *file, const char __user *buf, size_t count, loff_t *ppos) ssize_t written = count; if (copy_from_user(mem, buf, count)) return -EINVAL; mem[count] = \0; word_count = get_word_count(mem); printk("write:word count:%d\n", (int) word_count); return written; // 描述与设备文件触发的事件对应的回调函数指针 static struct file_operations dev_fops = { .owner = THIS_MODULE, .read = word_count_read, .write = word_count_write }; // 描述设备文件的信息 static struct miscdevice misc = { .minor = MISC_DYNAMIC_MINOR, .name = DEVICE_NAME, .fops = dev_fops };
// 将4个字节还原成int类型的值 n = ((int) buf[0]) 24 | ((int) buf[1]) 16 | ((int) buf[2]) 8 | ((int) buf[3]); printf("word byte display:%d,%d,%d,%d\n", buf[0], buf[1], buf[2], buf[3]); printf("word count:%d\n", n); close(testdev); return 0;
恼人的Linux内存统计 前几天遇到一个客户反馈的内存问题,大致背景是自建的数据库业务,购买的是阿里云裸金属服务器总是遇到内存不足的情况,每次重启过不了多久就会不断报内存页分配失败,而且无论怎么扩容内存业务改善都不大
Linux中如何统计某个字符串个数? 在 Linux 系统下,有时候,我们可能要对一个日志文件进行分析。比如,分析日志文件中某个单词或者某个特殊字符串出现了多少次。
Linux基础命令---文本统计wc wc 统计文件的字节数、单词数、行数。 此命令的适用范围:RedHat、RHEL、Ubuntu、CentOS、SUSE、openSUSE、Fedora。1、语法 wc [选项] file2、选项列表 --version ...
相关文章
- 2013 年关于 Linux 的 5 大预言
- 【Linux】linux之如何清理磁盘空间
- 每天一个linux命令(23):Linux 目录结构
- Linux下统计目录下文件及文件夹的个数
- linux 命令 文件数量统计
- Linux基本命令操作
- linux终端绝佳配色方案
- Linux 网络操作 ping telnet curl netstat
- windows无法访问vmware搭建好虚拟机linux web服务器
- 【刷题】面筋-linux统计文件中字符串次数及文件夹下特定类型文件个数
- Linux高可用性方案之Heartbeat的日常维护命令(原创)
- linux 统计命令执行后的行数或者统计目录下文件数目
- Linux Shell脚本自动化编程实战- shell并发
- Linux find批量替换文件中某字符串的方法
- 信号概述 硬件异常将产生信号 进程间通信概述 进程间通信 进程间通信功能 Linux 操作系统支持的主要进程间通信的通信机制 linux 进程间通信(IPC)由以下几个部分发展而来 数据传输 信号
- linux makefile字符串操作函数 替换subst、模式替换patsubst、去首尾空格strip、查找字符串findstring、过滤filter、反过滤filter-out、排序函数sort、取单词word、取单词串wordlist、个数统计words
- linux终端或者虚拟机SecureCRT窗体拖动之后,会自己主动收到一个Ctrl+C的命令
- Linux统计文件夹中文件个数以及目录个数
- L85.linux命令每日一练 -- 第12章 Linux系统常用内置命令(一)
- L65.linux命令每日一练 -- 第十章 Linux网络管理命令 -- ifdown和route
- L35.linux命令每日一练 -- 第五章 Linux信息显示与搜索文件命令 -- which和whereis
- Linux系统之部署开源gocron定时任务管理系统
- 嵌入式Linux开发,Ubuntu22下交叉编译报错:arch64-linux-gnu-gcc: error while loading shared libraries: libstdc++.so.
- 嵌入式linux开发,Linux下访问PHY芯片寄存器
- Linux基础命令-uname显示系统内核信息
- Thinkpad(Linux)无外接电源定时开机(一百三十四)
- 74:应急响应-win&linux分析后门&勒索病毒&攻击 ==》暴力破解攻击成功的在4624的eventID里!PChunter可查看非系统的可疑启动项/服务/定时任务,还是很直观的!Linux下gscan也不错,EDR可参考。
- Linux命令详解之awk
- 嵌入式Linux开发,Ubuntu下交叉编译内核报错:error while loading shared libraries: /lib/x86_64-linux-gnu/libc++.so:
- 【看表情包学Linux】进程优先级 | 查看系统进程 | 优先级修改 | 进程的切换 | 竞争性与独立性 | 并行并发的概念 | 环境变量
- 安卓通过Linux Deploy安装linux系统
- Linux调试bin报错原因