
Linux
文章平均质量分 78
ShenRui
不要只会编码,交流比编码更重要
展开
-
JNI编程(二) —— 让C++和Java相互调用(1)
<br />http://chnic.javaeye.com/blog/236248<br /> <br /><br />自己在外面偷偷的算了下,又有将近两个月没更新过blog了。趁着今天有兴致,来更新JNI编程的第二篇文章。在第一篇里,大概介绍了JNI的特点、用途和优劣。并且做一个最简单的JNI的例子,不过说实话那个例子在实际的开发中没有太大的价值,实际开发中所需要的JNI程序要远远比那个复杂。所以这一篇就来介绍下如何通过JNI实现java和C++的相互通信,来满足实际开发的需要。<br /> <br /转载 2011-02-24 16:37:00 · 1560 阅读 · 0 评论 -
深入分析 Linux 内核链表
<br /> <br /><br />链表是一种常用的组织有序数据的数据结构,它通过指针将一系列数据节点连接成一条数据链,是线性表的一种重要实现方式。相对于数组,链表具有更好的动态性,建立链表时无需预先知道数据总量,可以随机分配空间,可以高效地在链表中的任意位置实时插入或删除数据。链表的开销主要是访问的顺序性和组织链的空间损失。<br />通常链表数据结构至少应包含两个域:数据域和指针域,数据域用于存储数据,指针域用于建立与下一个节点的联系。按照指针域的组织以及各个节点之间的联系形式,链表又可以分为单链表、转载 2011-05-17 17:11:00 · 634 阅读 · 0 评论 -
linux 下缓冲区溢出攻击原理及示例
<br />一、溢出目标<br /> 无论是在windows下还是在linux下,溢出攻击基本上都是以控制计算机的执行路径为目标,而x86下执行哪条指令是由eip寄存器来控制的,所以如果能够修改eip寄存器的值,就可以修改计算机的执行路径。<br /> 所以溢出的目标:控制eip寄存器。二、关于call/ret<br /> 但是如何修改eip寄存器呢?在汇编指令中有一个和eip寄存器紧密相关的指令ret,ret就可以理解为pop eip。而ret指令在正常函数调用的时候都会执行的。<转载 2011-03-22 14:23:00 · 1483 阅读 · 0 评论 -
iptables/netfilter命令、实现及利用
<br /><br />一、Netfilter和Iptables概述<br /> netfilter/iptables IP 信息包过滤系统是一种功能强大的工具,可用于添加、编辑和除去规则,这些规则是在做信息包过滤决定时,防火墙所遵循和组成的规则。这些规则存储在专用的信息包过滤表中,而这些表集成在 Linux 内核中。在信息包过滤表中,规则被分组放在我们所谓的链(chain)中。<br /> 虽然 netfilter/iptables IP 信息包过滤系统被称为单个实体,但它实际上由两转载 2011-03-22 14:16:00 · 1234 阅读 · 0 评论 -
跟我一起写 Makefile
<br /><br />概述 <br />================<br />什么是makefile?或许很多Winodws的程序员都不知道这个东西,因为那些Windows的IDE都为你做了这个工作,但我觉得要作一个好的和professional的程序员,makefile还是要懂。这就好像现在有这么多的HTML的编辑器,但如果你想成为一个专业人士,你还是要了解HTML的标识的含义。特别在Unix下的软件编译,你就不能不自己写makefile了,会不会写makefile,从一个侧面说明了一个人是否具备转载 2011-02-23 14:12:00 · 726 阅读 · 0 评论 -
GCC 参数详解
<br />[介绍] <br />gcc and g++分别是gnu的c & c++编译器 gcc/g++在执行编译工作的时候,总共需要4步 <br /><br />1.预处理,生成.i的文件[预处理器cpp] <br />2.将预处理后的文件不转换成汇编语言,生成文件.s[编译器egcs] <br />3.有汇编变为目标代码(机器代码)生成.o的文件[汇编器as] <br />4.连接目标代码,生成可执行程序[链接器ld] <br />[参数详解] <br />-x language filename <转载 2011-03-11 10:20:00 · 462 阅读 · 0 评论 -
从Linux程序中执行shell(程序、脚本)并获得输出结果
<br />从Linux程序中执行shell(程序、脚本)并获得输出结果(转)Contents1. 前言2. 使用临时文件3. 使用匿名管道4. 使用popen5. 小结1. 前言<br />Unix界有一句名言:“一行shell脚本胜过万行C程序”,虽然这句话有些夸张,但不可否认的是,借助脚本确实能够极大的简化一些编程工作。比如实现一个ping程序来测试网络的连通性,实现ping函数需要写上200~300行代码,为什么不能直接调用系统的ping命令呢?通常在程序中通过 system函数来调用shell命令转载 2011-03-09 19:01:00 · 888 阅读 · 0 评论 -
CentOS5共有フォルダの設定
<br />http://mpweb.sytes.net/complete/windows/share-centos.php<br />VirtualBoxでゲストOSのCentOS5を起動しメニューバー>>デバイス(D)>>共有フォルダ(S)を選択します。共有フォルダの設定画面が開いたら右上のフォルダに+マークの付いたアイコンをクリックします。共有フォルダの追加でフォルダパスと、フォルダ名を指定します。フォルダパスを指定するとフォルダ名が自動で挿入されますが、このときフォルダ名にブランクが入っている場合は转载 2011-03-09 10:41:00 · 781 阅读 · 0 评论 -
unix下的jni使用指南(2)--如何使用GetFieldID和GetMethodID
<br /><br /> <br /> GetFieldID是得到java类中的参数ID,GetMethodID得到java类中方法的ID,它们只能调用类中声明为 public的参数或方法。使用如下:<br /><br />jfieldID topicFieldId = env->GetFieldID(objectClass,"name", "Ljava/lang/String;");<br />jmethodID getcName=env->GetMethodID(objectClass,"getc转载 2011-02-28 17:12:00 · 4471 阅读 · 1 评论 -
--vi 查找命令的使用
<br />按下 Enter 键后,vi 将搜索指定的 pattern,并将光标定位在 pattern 的第一个字符处。<br />例如,要向上搜索 place 一词,请键入:<br />/place Enter (Enter表示按下回车键)<br /><br />如果 vi 找到了 place,它将把光标定位在 p 处。要搜索 place 的其他匹配,请按 n 或 N:<br /><br />n,继续朝同一方向搜索 place。<br /><br />N,反方向进行搜索。<br />如果 vi 未找到指定转载 2011-03-01 17:53:00 · 750 阅读 · 0 评论 -
linux环境变量 shell变量 command not found解决方法
<br /><br />在Ubuntu中有如下几个文件可以设置环境变量<br />1、/etc/profile:在登录时,操作系统定制用户环境时使用的第一个文件,此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行。<br />2、/etc/environment:在登录时操作系统使用的第二个文件,系统在读取你自己的profile前,设置环境文件的环境变量。<br />3、~/.bash_profile:在登录时用到的第三个文件是.profile文件,每个用户都可使用该文件输入专用于自己使用转载 2011-03-01 16:57:00 · 16428 阅读 · 0 评论 -
Linux下设置环境变量的文件
<br />第一篇<br /><br />bashrc与profile的区别<br />要搞清bashrc与profile的区别,首先要弄明白什么是交互式shell和非交互式shell,什么是login shell 和non-login shell。<br />交互式模式就是shell等待你的输入,并且执行你提交的命令。这种模式被称作交互式是因为shell与用户进行交互。这种模式也是大多数用户非常熟悉的:登录、执行一些命令、签退。当你签退后,shell也终止了。 shell也可以运行在另外一种模式:非交互式转载 2011-04-12 14:56:00 · 1050 阅读 · 0 评论