- 博客(12)
- 收藏
- 关注
原创 main()函数传递整数型参数的方法
void main(int argc, char **argv){ .......}argc:传递参数总个数,包括可执行文件名argv[0]:可执行文件名argv[1]:第一个参数,...以此类推argv[]中保存的参数是char型字符串,将字符串转为整型数字(如 argv[1] = "1",转换成整型 1)的做法是:(1)包含头文件:#include <...
2019-12-10 15:00:24
5267
原创 指针数组与数组指针
指针数组:是一个数组,数组元素为指针类型。定义为: int *array[100]; //定义了一个数组元素数为100数组,每个元素是指针类型数组指针:是一个指针,该指针指向的是一个数组,定义为: int (*array)[100]; //定义了一个指向数组的指针,该数组的元素数为100...
2019-11-29 10:41:42
247
原创 sizeof(指针、数组、字符串)大小
#include <stdio.h>int main(void){ int a, b, c, d, d2, e, f, g; char str[100]; int arry[100]; char *string="abc"; int *p = malloc(100); char *p2 ...
2019-11-29 10:32:55
3381
转载 内存映射:mmap与ioremap
对于提供了MMU(存储管理器,辅助操作系统进行内存管理,提供虚实地址转换等硬件支持)的处理器而言,Linux提供了复杂的存储管理系统,使得进程所能访问的内存达到4GB。 进程的4GB内存空间被人为的分为两个部分--用户空间与内核空间。用户空间地址分布从0到3GB(PAGE_OFFSET,在0x86中它等于0xC0000000),3GB到4GB为内核空间。 1.不管是在用户空间还是在内核...
2019-09-21 14:58:57
1252
原创 C程序中,删除文件指定字符、空格、逗号、换行符、Tab键等方法
int main(int argc, char **argv){ ... /*system中不支持使用格式符%s,%d等,因此使用sprintf()先使用格式符转换,再将转换后的字符串存放在buffer中*/ snprintf(buffer, sizeof(buffer), "cat '%s' | tr -d '\r''\n' > temp_logo.txt",ar...
2019-09-07 18:18:55
1721
原创 在内核中读文件大小的方法
方法一:使用struct kstat结构体和vfs_stat()函数,使用方法和功能类似于应用态的struct stat和stat()函数。举例:读取文件 struct kstat stat; char *file_path = "/text.txt"; int file_size = 0; ret = vfs_stat(file_path, &stat);...
2019-09-07 18:13:38
3020
原创 编译出错,出现 vfs_read[******.ko] undefined !
出现类似问题的原因是锁使用的函数无符号导出,本例是因为linux-4.0以后的版本取消了vfs_read()的符号导出EXPORT_SYMBOL(vfs_read)解决办法:(1)使用fp->f_op->read()函数,但是使用这个,虽然可以编译通过,但是在加载时,fp->f_op->read的返回值是NULL,原因未找到;(2)使用修改内核(不建议,会污染内核):...
2019-09-07 18:12:06
6632
原创 从txt文件中读数字字符串,将其转换为对应的整数,并写到二进制文件中
假设test.txt文件有以下内容:0x00,0x12,0x00,0x00,0xc2,0x00,0x00,0xff,0x22,0x00,0xee,0x00,0x00,0x1d,0x00,0x00,0x12,0x00,0xcd,0x12,0x00,0x00,0x12,0x00,0x45,0xde,0x00,0x00,0xff,0x00,0x00,0x12,0x00,0x00,0xff,0x0...
2019-09-07 18:09:35
2704
原创 简单的摄像头自写驱动程序总结
框架:USB总线驱动程序的作用1.识别USB设备1.1分配地址1.2并告诉USB设备(setaddress)1.3发出命令获取描述符2.查找并安装对应的设备驱动程序3.提供USB读写函数usb总线驱动程序在我们接入USB设备的时候会帮我们构造一个新的usb_device.注册到总线里面来。 本驱动程序总共需要构造1个usb驱动结构体:usb_driver /*用于操作接入的USB设备*/2...
2018-06-27 16:35:00
3358
转载 insmod: error inserting 'vivi.ko': -1 Unknown symbol in module 问题解决办法
加载驱动时遇到:insmod: error inserting 'vivi.ko': -1 Unknown symbol in module的问题,在网上查了下,解决办法如下:1、用modinfo ./vivi.ko | grep depend 找模块的依赖,结果如下depends: videodev,videobuf-vmalloc,videobuf-core,v4l2-co...
2018-05-15 15:10:41
2045
转载 C/C++基础知识:typedef用法小结
第一、四个用途用途一:定义一种类型的别名,而不只是简单的宏替换。可以用作同时声明指针型的多个对象。比如:char* pa, pb; // 这多数不符合我们的意图,它只声明了一个指向字符变量的指针, // 和一个字符变量;以下则可行:typedef char* PCHAR; // 一般用大写PCHAR pa, pb; // 可行,同时声明了两个指向字符变量的指针虽然:char *pa, *pb;也可...
2018-04-17 10:09:09
227
转载 void 与void*
void关键字的使用规则: 1. 如果函数没有返回值,那么应声明为void类型; 2. 如果函数无参数,那么应声明其参数为void; 3. 如果函数的参数可以是任意类型指针,那么应声明其参数为void * ; 4. void不能代表一个真实的变量;void体现了一种抽象,这个世界上的变量都是“有类型”...
2018-04-17 09:34:06
341
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人