社区
Linux/Unix社区
帖子详情
linux有没有测试内存可读写的函数。
kkk2017
2013-09-09 08:13:03
LINUX C语言没有try catch吗?
我有一段代码,可能内存不能读,会出错,没有try catch怎么防止这种错误呢?
WINDOWS上有IsBadReadPtr和IsBadWritePtr函数测试内存的可读可写?LINUX有类式的函数吗?
...全文
448
3
打赏
收藏
linux有没有测试内存可读写的函数。
LINUX C语言没有try catch吗? 我有一段代码,可能内存不能读,会出错,没有try catch怎么防止这种错误呢? WINDOWS上有IsBadReadPtr和IsBadWritePtr函数测试内存的可读可写?LINUX有类式的函数吗?
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
3 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
juliantec
2013-09-10
打赏
举报
回复
有意思的问题 在linux里面,如果去访问你无权访问的内存地址,你就会收到 SIGSEGV 信号而陷入段错误(默认处理为结束进程的继续执行)。 所以,如果你想侦测内存读写权限问题,那你就可以想办法去catch 这个 信号,做进一步的处理。
juliantec
2013-09-10
打赏
举报
回复
不应该吧,我想有两点可以确定: a,某一线程在访问内存违例时候触发的 SIGSEGV 信号只会被这个线程本身收到, 另外的线程是不会收到的。 b,如果想要让函数isbadptr线程安全,那估计需要给每一个线程都准备一份jmp_buf, 或者将之放在TLS内部。 longjmp 的时候挑自己对应的那个用。
kkk2017
2013-09-10
打赏
举报
回复
用了SIGSEGV信号+setjmp的方法来测试可读写,但总觉得有问题。 #include <setjmp.h> #include <signal.h> jmp_buf jmpbuf; void sigsegv(int sign) { signal(sign,SIG_DFL); longjmp(jmpbuf,1); } bool isbadptr(void*ptr,int size) { int i; signal(SIGSEGV,sigsegv); i=setjmp(jmpbuf); if(i==0) { for(i=0;i<size;i++) { *((char*)ptr+i)=*((char*)ptr+i); } } else if(i==1) { return 0; } return 1; } int main(int argc, char** argv) { int eax; if((eax=isbadptr((void*)1000,100))==0) printf("error ptr eax=0"); return (EXIT_SUCCESS); } 用了SIGSEGV信号+setjmp的方法来测试可读写,但总觉得有问题。各位大侠指教。 比如开了两个线程A,线程B, 线程A里调用isbadptr来测试内存读写,isbadptr里调用signal安装了信号处理SIGSEGV,并且setjmp,并且读写内存。 这时候切换到线程B执行,线程B里出现了读写内存错误,发生了SIGSEGV信号,由于之前线程A里调用isbadptr里调用signal安装了信号处理SIGSEGV。这时候线程B走进sigsegv处理函数,调用longjmp跳转到原来线程A的setjmp,最终导致整个逻辑错误。
查看
内存
使用情况的汇编源代码
查看
内存
使用情况的汇编源代码
[14本经典Android开发教程]-8-
Linux
内核阅读心得体会
[14本经典Android开发教程] 8
Linux
内核阅读心得体会 读核感悟 2 读核感悟
Linux
内核启动 内核的生成 2 读核感悟
Linux
内核启动 从hello world说起 3 读核感悟
Linux
内核启动 BIOS 5 读核感悟
Linux
内核启动 setup辅助程序 6 读核感悟
Linux
内核启动 内核解压缩 8 读核感悟
Linux
内核启动 开启页面映射 9 读核感悟
Linux
内核启动 链接脚本 11 读核感悟 伪装现场 系统调用参数 13 读核感悟 伪装现场 fork 系统调用 15 读核感悟 伪装现场 内核线程: 17 读核感悟 伪装现场 信号通信 19 读核感悟 kbuild系统 内核模块的编译 22 读核感悟 kbuild系统 编译到内核和编译成模块的区别 24 读核感悟 kbuild系统 make bzImage的过程 26 读核感悟 kbuild系统 make menuconfig 31 读核感悟 文件系统 用C来实现面向对象 32 读核感悟 设计模式 用C来实现虚
函数
表和多态 32 读核感悟 设计模式 用C来实现继承和模板 33 读核感悟 设计模式 文件系统和设备的继承和接口 34 读核感悟 设计模式 文件系统与抽象工厂 36 读核感悟 阅读源代码技巧 查找定义 37 读核感悟 阅读源代码技巧 变量命名规则 42 读核感悟
内存
管理 内核中的页表映射总结 43 读核感悟 健壮的代码 exception table 内核中的刑事档案 44 读核感悟 定时器 巧妙的定时器算法 45 读核感悟
内存
管理 page fault处理流程 45 读核感悟 文件
读写
select实现原理 47 读核感悟 文件
读写
poll的实现原理 49 1 功能介绍: 49 2 关键的结构体: 49 3 poll的实现 49 4 性能分析: 50 读核感悟 文件
读写
epoll的实现原理 50 1 功能介绍 50 2 关键结构体: 51 3 epoll create的实现 53 4 epoll ctl的实现 53 5 epoll wait的实现 54 6 性能分析 54 读核感悟 同步问题 同步问题概述 55 1 同步问题的产生背景 55 2 内核态与用户态的区别 55 读核感悟 同步问题 内核态自旋锁的实现 56 1自旋锁的总述 56 2非抢占式的自旋锁 56 3 锁的释放 57 4 与用户态的自旋锁的比较 57 5 总结 58 读核感悟
内存
管理 free命令详解 58 读核感悟 文件
读写
2 6 9内核中的AIO 59 1 AIO概述 59 2 内核态AIO的使用 61 读核感悟 文件
读写
内核态AIO相关结构体 61 1 内核态AIO操作相关信息 61 2 AIO上下文: 63 3 AIO ring 63 4 异步I O事件的返回信息 64 读核感悟 文件
读写
内核态AIO创建和提交操作 65 1 AIO上下文的创建 io setup 65 2 AIO请求的提交:io submit实现机制 66 读核感悟 文件操作 AIO操作的执行 66 1 在提交时执行AIO 66 2 在工作队列中执行AIO 66 3 负责AIO执行的核心
函数
aio run iocb 67 4 AIO操作的完成 67 读核感悟 文件
读写
内核态是否支持非direct I O方式的AIO 67 已上传7本: [14本经典Android开发教程] 1 Android开发从入门到精通 http: download csdn net detail cleopard 8355245 [14本经典Android开发教程] 2 Android开发手册 API
函数
详解 http: download csdn net detail cleopard 8374487 [14本经典Android开发教程] 3 Android SDK 中文开发文档 http: download csdn net detail cleopard 8380429 [14本经典Android开发教程] 4 Android应用程序开发36技 http: download csdn net detail cleopard 8380495 [14本经典Android开发教程] 5
linux
Android基础知识总结 http: download csdn net detail cleopard 8380529 [14本经典Android开发教程] 6 Android驱动开发入门及手机案例开发分析教程 http: download csdn net detail cleopard 8388019 [14本经典Android开发教程] 7 Android编程入门教程 http: download csdn net detail cleopard 8388043 剩余8本稍后上传 @或直接从这里寻找@ http: download csdn net user cleopard album @更多@ http: cleopard download csdn net 福利 http: xuemeilaile com 17份软件
测试
文档 http: download csdn net album detail 1425 13份WPF经典开发教程 http: download csdn net album detail 1115 C#资料合辑二[C#桌面编程入门篇] http: download csdn net album detail 957 C#资料合辑一[C#入门篇] http: download csdn net album detail 669 [Csharp高级编程 第6版 ] 共8压缩卷 http: download csdn net album detail 667 10个[精品资源]Java学习资料合辑[一] http: download csdn net album detail 663 10个C#Socket编程代码示例 http: download csdn net album detail 631 6份GDI+程序设计资源整合[全零分] http: download csdn net album detail 625 2014年移动游戏行业数据分析 http: download csdn net detail cleopard 8340331 一文读懂2014年全球互联网广告新生态 http: download csdn net detail cleopard 8340303">[14本经典Android开发教程] 8
Linux
内核阅读心得体会 读核感悟 2 读核感悟
Linux
内核启动 内核的生成 2 读核 [更多]
Linux
下PCI IO
内存
读写
本文链接自:
http://qikee.blogbus.com/logs/37072405.html
I/O端口是驱动程序与许多设备之间的通信方式,
Linux
的内核为我们提供了I/O端口分配的操作接口,但对PCI设备来讲,它的配置地址空间已经为其指定了I/O端口范围,不需要额外的分配操作。
Linux
内核
提供了如下一些访问I/O端口的内联
函数
:
unsigned inb(unsigned port);
void outb(unsigned
Linux
下磁盘文件
读写
之速度
测试
Linux
一.简介 最近由于项目的需求,想要
测试
一下
linux
开发板下的文件
读写
速度,所以我就大小写一个小程序来
测试
一下,这里我用了三种方法分别对文件进行读出来,然后写入到另一个文件中,类似于复制文件操作 二.代码部分 这也就是最简单的文件操作了,先计算出文件的大小,然后测出文件
读写
完成所需要的时间,相除就能知道速度了,不足的是只能
测试
读和写的共同时间,如何单测读或写需要屏蔽代码进行
测试
//
linux
文件
读写
速度
测试
#include <stdio.h> #include <sys/
【
Linux
】
Linux
系统调用
函数
(300多个)
一、初级I/O
函数
二、文件管理操作
函数
三、标准I/O
函数
四、格式化输入输出
函数
五、进程控制六、进程间通信
函数
七、信号
函数
八、用户、组
函数
及环境变量
函数
九、错误处理与
内存
分配
函数
十、日志
函数
、动态
函数
与正则表达式
函数
十一、时间
函数
十二、socket相关
函数
十三、字符
测试
函数
十四、数据转换
函数
十五、字符串处理
函数
十六、数学计算
函数
十七、随机数及数据加密
函数
十八、数据结构
函数
十九、其他
函数
Linux/Unix社区
23,215
社区成员
74,540
社区内容
发帖
与我相关
我的任务
Linux/Unix社区
Linux/Unix社区 应用程序开发区
复制链接
扫一扫
分享
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章