摘要:
这篇随笔也是看到陈皓的这篇文章自己做了一些测试和学习,http://coolshell.cn/articles/7965.html1. 两个fork程序关于fork,先看我们的第一个fork测试程序 1 #include<stdio.h> 2 #include<unistd.h> 3 int main(){ 4 for(int i=0; i<2; i++){ 6 int result = fork(); 7 if(result == 0){ 8 printf("child process -----"); 9 }... 阅读全文
摘要:
注: 这篇文章写得有些杂乱,主题没有清晰的表述,我自己再隔了很久回头看的时候也感觉有些乱,我以后会改一改这样写文章的风格,做到每篇文章讲述一个主题,简洁清晰,多余的东西不写进来.现在在看之前记住主题呢就是这篇文章讲述了类的成员对象在内存中的布局,由于只要类包含虚函数(当然包括其继承下来的),其第一个成员一定是这个类的虚表的地址(继承层次下的每一个类都会有自己的虚表),所有我又写测试程序研究了下虚表的布局.而在写测试程序研究虚表布局的时候又用到就顺便提了些c++语言层面的知识,如函数指针等.前段時間在看Inside c++ object model的时候,写测试程序看看有虚函数的类的对象在内存中 阅读全文
摘要:
这篇随笔源自今天看的这篇文章http://www.cnblogs.com/bluesea147/archive/2012/05/19/2508208.html1. 如何修改函数返回地址今天主要写测试程序思考和验证了一下这个问题,先看一下这个C程序 1 #include <stdio.h> 2 void foo(){ 3 int a, *p; 4 p = (void*)((long)&a + 12); 5 *p += 20; 6 } 7 int main(){ 8 foo(); 9 printf("First pri... 阅读全文
摘要:
1。大端小端的一个测试程序在之前一篇文章中有提到,下面是写的一个测试程序,可以用来查看一个机器是大端还是小端表示 1 #include<stdio.h> 2 typedef unsigned char * bytePointer; 3 void show_bytes(bytePointer start, int size){ 4 printf("start address : %p\nsize : %d\n", start, size); 5 for (int i = 0; i < size; i++){ 6 printf("address : 阅读全文
摘要:
1, cmp, jmp指令, 先看几个C中的循环 1 int sum(int* p, int size){ 2 int sum = 0; 3 for (int i = 0; i < size; i++){ 4 sum += *(p+i); 5 } 6 return sum; 7 } 8 int sum1(int* p, int size){ 9 int sum = 0;10 int i = 0;11 do{12 sum += *(p+i);13 i++;14 }while(i < s... 阅读全文
摘要:
i386的几个寄存器 : segment registers先暂时不管了, 弄清楚, 其作用是不是跟IA32, 或IA64有关GAS的所有指命后面都带个字符后缀, 表操作数的大小, b, w, l分别是 8位, 16位, 32位, l也表示8字节的双精度浮点数, 另外我在自己的电脑上生成.s时看到了movq, pushq %rbx, %rbx表示64位的寄存器引用,这是在Intel 64 architecture中才有的,q指的是(quadword registers)通用寄存器就是整数寄存器, 用来存整数, 当然可以把它看作指针, 看怎么解析了 前6个比较通用, 后两个%ebp, %es.. 阅读全文
摘要:
这篇随笔源自在coolshell.cn上看到的一篇文章,也第一次看到这样的话,这是linux之父linus说的,在解释他为什么不用C++来写git : c++ is a horrible language, it is made more horrible by the fact that a lot of substandard programmers use it.自己看书有很多大神级别的人是这种观点,比如好像the art of unix programming的作者是,好像很多写程序的高手都认同这样的想法,像云风,coolshell的博主陈皓,陈皓表达了C++是一个不成熟的语言的观.. 阅读全文
摘要:
在写私信群聊代码的时候碰到怎么把一个vector<Int> 元素unique化的问题,基本上就是需要下面这么做,用<algorithm>中的,先sort再unique 1 #include <algorithm> 2 #include <iostream> 3 #include <vector> 4 #include <stdio.h> 5 using namespace std; 6 void print(vector<int>& vec); 7 int main(){ 8 int a[] = {1, 阅读全文
摘要:
netstat (network statatics), http://en.wikipedia.org/wiki/Netstatnetstat提供的信息有, 一个socket的 : protocol(TCP or UDP), Local Address , Foreign Address, State (TCP 连接的状态) , Address包括地址和Port, 如果没有指定 -n, 则Address会被解析成域名, port会被解析成 端口对应的应用 (80 对应 www)-p 是显示出拥有这个socket的 进程的 pid 和 namenetstat -i 会显示kernel int. 阅读全文
摘要:
1. ICE的一些背景the Internet Communications Engine http://www.zeroc.com/ice.htmlICE 是ZeroC的主要产品, 是一个object-oriented toolkit,用来帮助我们构建分布式应用程序,使我们专注于程序的逻辑而不是底程网络交互的细节ZeroC provides a fast and highly-scalable communications infrastructure for demanding technical applications, such as telecom, defense, fina.. 阅读全文