关闭

深入汇编理解缓冲区溢出攻击

1.基本知识    子汇编程序里,调用函数使用CALL伪指令,原始的传递参数的方法可以是使用寄存器和全局标记(和高级语言,如C中的全局变量,在.data段定义的标记)。但是由于这样子函数不能模块化,而且如果程序功能稍大的话,代码将非常难于理解和维护,所以后来统一使用栈来管理函数调用,包括函数的参数传递,返回地址,局部变量。这样函数就可以模块化,并且可以写在另一个文件中。不过,在Linux内...
阅读(1976) 评论(2)

深入汇编语言来理解C语言中的传值和传址调用

     这个问题是由我上次和一个同学讨论引起的,这个问题在我的另一篇博客中有写到:大概如下,当一个新参为指针的函数接受一个指针作为实参时,但是这个实参指针没有初始化,然后我在这个函数中用malloc为其分配内存,那么退出这个函数之后,这个实参是什么呢?    下面,我写了这个文件来测试test_vp.c-----------------------------------------...
阅读(2829) 评论(9)

深入理解Linux内核中的链表

      最近,开始研读一下Linux的内核代码,刚一开始,就有令人惊叹的发现,不得不感叹内核代码设计得之美!单是最常用的链表也设计得不得不令人佩服!1.1.链表list_head    include/linux/list.h    很经典,链表在内核中很常用,例如管理进程,进程的各个状态队列都是使用这个双向链表实现的。内核中的链表定义成和数据无关的形式,而不是通常我们使用的链表格...
阅读(6742) 评论(32)

Intel汇编入门实例

1.写一个最简单的C程序test.c-----------------------------------#includeint main(){    printf("Hello assembly!/n");    return 0;}然后编译它,不要进行汇编。$gcc -S test.c生成文件test.s,然后使用vim打开之,内容如下:test.s--...
阅读(1637) 评论(0)

在Linux环境下单机上实现MySQL5主从数据库同步复制

1.安装MySQL(略)2.启动多个MySQL服务器    要实现在单机上启动多个MySQL服务器,有两种方法,一种是直接使用mysqld_safe来运行多个服务器当然这样分别编辑配置文件,而且关闭服务器的时候也要读取配置文件,所以比较麻烦,另一种方法是使用MySQL提供到工具mysqld_multi脚本来管理多个服务器,下面使用的方法是mysqld_safe来实现。3.前置条...
阅读(3255) 评论(0)

深入理解Linux kernel(内核)中的signal函数

在Linux内核代码中,有一个信号处理绑定器函数signal,它到原型定义如下,通过man 2 signal可以查看其原型。#include typedef void (*sighandler_t)(int);    (1)sighandler_t signal(int signum,sighandler_t handler);    (2)第一句是包含头文件,第二句是类型定义,第...
阅读(2834) 评论(0)

C指针的疑惑(函数传址调用,如果传递的指针没有初始化会怎么样?)

有下列简单的C程序,想一想程序运行的结果是什么?#include#includeint *p;//p=NULL    (1)void test_p(int *p){    p=(int *)malloc(sizeof(int));    if(!p){        perror("malloc faild/n");    }else{        pri...
阅读(1885) 评论(3)

Ubuntu下出现Mysql error(2002)的解决方法

      过了一阵子后,为了写分布式作业,重新使用Mysql时,发现虽然启动成功了,但是连接的时候去出现如下错误ERROR 2002 (HY000): Cant connect to local MySQL server through socket /var/run/mysqld/mysqld.sock (2)根据提示是/var/run/mysqld/mysqld.sock文件不...
阅读(19958) 评论(3)

Ubuntu-9.10中安装zsh和rxvt

zsh是一个shell解释器,就如最流行的bash一样,默认ubuntu中没有安装zsh,下面自己安装。1.安装zsh    $sudo apt-get install zsh zsh-doc zsh-lovers2.启动zsh    $zsh首次启动zsh时会提示配置个性化文件,你也可以跳过,当然还可以在网上下载别人配置好的配置文件,在别人的基础上再个性化,这是最好的方法。...
阅读(3218) 评论(0)

Ubuntu中配置awesome3.x

       安装好awesome后,就可以登录进入awesome好好体验一下了,总的感觉就是很简洁,轻量就是快啊。awesome默然启动后,主题是深色的。最上面一栏是工具栏,从最左边的logo菜单,然后是1-9工作区,在awesome中称作tag,然后就是窗口列表栏,最右边是systray。    在awesome中启动的程序,默认都是没有窗口边框的,因为不用使用鼠标去最大最小化,关闭。而且...
阅读(4605) 评论(0)

Ubuntu中使用awesome

1.awesome介绍    awesome是一款平铺式窗口管理器,将所有打开的窗口设置成各种平铺方式,让它们之间无间隙的平铺于桌面上。awesome可以全部使用键盘来操作窗口2.安装    $sudo apt-get install awesome awesome-extra3.使用    注销用户,然后在登录时选择awesome即可。4.基本快捷键    Super...
阅读(5980) 评论(0)

配置编译内核(Linux kernel)

       虽然以前也编译过内核,但是关于内核配置选项特别是有关本机驱动这块还是不熟悉,因为没有通过确定有效的途径知道当前工作正常的内核中到底使用了什么驱动模块来控制硬件,最近看到一本书《Linux kernel in a netshell》,感觉讲的还不错,所以记下笔记。1.编译内核的工具    gcc    binutils(ld)    binutils是gcc的工具链,用来链...
阅读(2115) 评论(0)

使用prism将网络程序转换成桌面程序

在Ubuntu(karmic koala)下完成。1.安装Prism$sudo apt-get install prism    Prism已经整合了一些常见的网络应用程序,如Gmail,Gtalk,youtube,Google Reader等,可以直接安装,如:$sudo apt-get install prism-google-reader prism-google-mail...
阅读(1525) 评论(0)

《C和指针》笔记1

1.scanf格式符        p9ld    longlf    double2.三字母词        p22    为了表示一些特殊的字符,在老式的机器键盘中可能没有的字符,特别约定了一种三字母词,三字母词都以??开始,如下:??(     [    ????)    ]    ??>    }    ??/    /    ??    ^    3...
阅读(921) 评论(0)

DrawIt:Vim画图插件(可在vim中画基本示意图)

1.下载$ wget -O DrawIt.vba.gz http://www.vim.org/scripts/download_script.php?src_id=8798切记:不要使用tar解压,它不是压缩包文件。2.解压$vim DrawIt.vba.gz:so %:q使用vim打开以后,就会发现命令提示中提示使用命令:so %来解亚。3.安装安装很容易,将...
阅读(7893) 评论(5)

搜狗云输入法的Firefox插件

搜狗云输入法推出了firefox浏览的插件,可以使用Firefox访问:http://pinyin.sogou.com/cloud/来安装。使用了一下,感觉还可以,毕竟搜狗输入法比ibus好用。有以下特点:1.可用于浏览器中文字的输入,但是不能在电脑的其他地方输入,如普通文件。2.即使勾选了“地址栏“,但是还是不能在地址栏中启动输入法。3.使用云输入法时要保持本地输入法处于英文状态...
阅读(1052) 评论(0)

GDB完全使用指南(1)

1.查看源程序    list    llist/l列出当前行附近的代码,可以使用参数指定当前行,以及指定一个范围,如l 10,l 10,202.运行程序的命令    运行调试的程序时,使用    run    r命令,run后面可以跟发给这个程序的任何参数,包括输入输出重定向,文件通配符等。以及传递给main函数的参数,当运行了带参数的run之后,再次运行时就...
阅读(1197) 评论(0)

深入理解C语言中的free函数。

#include#includeint main(){    int *test=(int *)calloc(1,sizeof(int));    if(!test)        printf("分配内存错误/n");    else{        printf("指针地址:%X/n",(unsigned int)test);        printf("指向...
阅读(14770) 评论(3)

P2P,UDP和TCP穿透NAT

Normal 0 7.8 磅 0 2 false false false MicrosoftInternetExplorer4 <!-- /* Fo...
阅读(20215) 评论(9)

ubuntu下安装pthread的manpages(man 手册)

    由于学习多线程编程,所以用到pthread,但是man的时候却发现没有pthread函数库的手册页,然后安装$sudo apt-get install glibc-doc    安装以后,发现还是有很多函数不全,只有一小部分pthread的函数,使用man -k pthread或apropos pthread可以查找到当前manpages中关于pthread的手册。安装manpag...
阅读(11722) 评论(6)
142条 共8页1 2 3 4 5 ... 下一页 尾页
    个人资料
    • 访问:554774次
    • 积分:7092
    • 等级:
    • 排名:第3339名
    • 原创:141篇
    • 转载:1篇
    • 译文:0篇
    • 评论:105条
    最新评论