Linux
happyguys12345
这个作者很懒,什么都没留下…
展开
-
Tera Term中的脚本文件ttl的使用
串口下的调试脚本原创 2016-09-23 17:17:58 · 11605 阅读 · 0 评论 -
ARM平台下elf文件超详细的分析与解读
第一、前言从今天开始我们正式开始Android的逆向之旅,关于逆向的相关知识,想必大家都不陌生了,逆向领域是一个充满挑战和神秘的领域。作为一名Android开发者,每个人都想去探索这个领域,因为一旦你破解了别人的内容,成就感肯定爆棚,不过相反的是,我们不仅要研究破解之道,也要研究加密之道,因为加密和破解是相生相克的。但是我们在破解的过程中可能最头疼的是native层,也就是so文件的破解。转载 2017-05-04 14:17:54 · 15558 阅读 · 1 评论 -
driver_register 的整个过程
转载:http://www.360doc.com/content/13/0705/10/3779243_297777301.shtml/*** driver_register - register driver with bus* @drv: driver to register** We pass off most of the work to the bus_add_dri转载 2016-12-02 15:29:48 · 351 阅读 · 0 评论 -
linux下创建软连接和硬链接
在linux下创建链接用ln命令:1.创建硬链接:ln 源文件 目标文件硬链接可以看到两个文件的i节点值是一样的,用ll -i来看。2,创建软链接:ln -s 源文件 目标文件软链接最后可以看到二者文件的i节点值不同,并且在目标文件可以看到如下的符号“->”.原创 2016-11-15 14:17:52 · 980 阅读 · 0 评论 -
结构体的三种初始化
struct student_st s2 = { .name = "YunYun", .c = 'B', .score = 92, };转载 2016-11-30 16:15:32 · 345 阅读 · 0 评论 -
kthread_should_stop()这个函数干了什么?
kthread_should_stop()返回should_stop标志。它用于创建的线程检查结束标志,并决定是否退出。线程完全可以在完成自己的工作后主动结束,不需等待should_stop标志。 该函数定义在include/linux/kthread.h中,与其相关的还有: struct task_struct kthread_run(int (*threadfn)(void *dat转载 2016-11-30 14:08:27 · 16758 阅读 · 1 评论 -
在VMWare下LINUX中安装VMTool及共享文件夹
1.开始安装Vmware 选择VM-->install VMware Tools(此时linux就会自动开始下载VMware Tools,并且保存在home/lmy/downloads下)2.将其拷贝到桌面上(右击-copy to-选择桌面-Extract here)3.打开terminal (ctrl+alt+t),cd 到解压完的目录也就是home/lmy/destop/有个dis转载 2016-11-29 15:46:38 · 551 阅读 · 0 评论 -
linux 不回车直接读取一个字符的方法(termios结构的描述了终端的模式,在这段代码中我们改变了它,使得终端能够接收到键盘输入马上返回。)
以下有两种,其实就是一种,都是通过更改终端的设置,但用完一定要在改回来,第一种是封装好了getch(),第二种没有封装。使用getch(),需要NCURSES库,但对这个库我不是很了解。使用时,要#include ;编译时,要gcc test.c -l curses。根据zjq9931提供的百度文库资料,里面有两个例子,发现第一个例子直接使用的curses,效果不是很好。但第二个例子是我想转载 2016-11-08 22:36:31 · 928 阅读 · 0 评论 -
do{...}while(0)的意义和用法
linux内核和其他一些开源的代码中,经常会遇到这样的代码:do{ ...}while(0)这样的代码一看就不是一个循环,do..while表面上在这里一点意义都没有,那么为什么要这么用呢?实际上,do{...}while(0)的作用远大于美化你的代码。查了些资料,总结起来这样写主要有以下几点好处:1、辅助定义复杂的宏,避免引用的时候出错:举转载 2016-11-08 09:51:32 · 200 阅读 · 0 评论 -
创建进程时,为什么fork会返回两次?
为什么fork会返回两次?由于在复制时复制了父进程的堆栈段,所以两个进程都停留在fork函数中,等待返回。因此fork函数会返回两次,一次是在父进程中返回,另一次是在子进程中返回,这两次的返回值是不一样的。过程如下图。fork调用的一个奇妙之处就是它仅仅被调用一次,却能够返回两次,它可能有三种不同的返回值: 在父进程中,fork返回新创建子进程的进程I转载 2016-09-15 16:55:57 · 1687 阅读 · 1 评论 -
用fork创建进程时,在子进程中 使用getppid 得到的返回值为啥总是1
今天学了用fork来创建process,发现使用getppid时返回的都是1,很奇怪,别人同样的程序却是真实返回父进程的ID号。查了其他的相关信息发现是:由于父进程先退出了,造成子进程被init(ID=1)接管,所以用getppid出来的是1.最后在line23加了sleep就能保证父进程后退出,具体代码如下:原创 2016-09-15 18:35:53 · 4680 阅读 · 1 评论 -
Linux下利用backtrace追踪函数调用堆栈以及定位段错误
一.用途:主要用于程序异常退出时寻找错误原因一般察看函数运行时堆栈的方法是使用GDB(bt命令)之类的外部调试器,但是,有些时候为了分析程序的BUG,(主要针对长时间运行程序的分析),在程序出错时打印出函数的调用堆栈是非常有用的。在glibc头文件"execinfo.h"中声明了三个函数用于获取当前线程的函数调用堆栈。int backtrace(void **buffe转载 2016-09-22 20:00:00 · 3796 阅读 · 0 评论 -
linux调试----addr2line使用
我们在linux下开发程序时,经常遇到Segmentation fault的错误信息,如果代码比较少还可以去一行行排除,但是代码量比较大的时候,往往是一件头疼的事情。Segmentation fault会有地址抛出,我们可以利用addr2line定位到程序出错的行,这样是不是很方便的排查问题。下面就简单的介绍一下addr2line的使用方法。工具/原料转载 2016-09-22 21:50:41 · 565 阅读 · 0 评论 -
平常练习的shell linux命令
1.awk命令原创 2017-06-02 09:22:37 · 319 阅读 · 0 评论