- 博客(26)
- 资源 (3)
- 收藏
- 关注
转载 网络栈主要结构介绍(socket、sock、sk_buff,etc)
1、socket(include\linux\Socket.h)该结构体socket 主要使用在BSD socket 层,是最上层的结构,在INET socket 层也会有涉及,但很少。/* * Internal representation of a socket. not all the fields are used by * all configurations: *
2017-08-22 11:36:31 1231
转载 Socket套接字状态说明
CLOSED没有使用这个套接字LISTEN套接字正在监听入境连接SYN_SENT套接字正在试图主动建立连接SYN_RECEIVED正在处于连接的初始同步状态ESTABLISHED连接已建立CLOSE_WAIT远程套接字已经关闭:正在等待关闭这个套接字FIN_WAIT_1套接字已关闭,正在关闭连接CLOSING套接字已关闭,远程套接字正在关闭,
2017-08-22 11:17:54 1633
原创 thread::detach
detach()用于让线程不受句柄控制!终止的线程所占用的资源也并不会随着线程的终止而得到释放!__detachstate,表示新线程是否与进程中其他线程脱离同步, 如果设置为PTHREAD_CREATE_DETACHED 则新线程不能用pthread_join()来同步,且在退出时自行释放所占用的资源。缺省为PTHREAD_CREATE_JOINABLE状态。这个
2017-08-13 17:32:52 1447
原创 Thread.join
join 是让当前主线程等待子线程执行完才退出。 主线程向下运行时,碰到了t1.join(),t1要申请加入到运行中来,要CPU执行权。* 这时候CPU执行权在主线程手里,主线程就把CPU执行权给放开,陷入冻结状态。* 活着的只有t1了,只有当t1拿着执行权把这些数据都打印完了,主线程才恢复到运行中来 回到Join,这里所说的调用方就是主线
2017-08-13 11:21:56 250
原创 Enable multithreading to use std::thread: Operation not permitted
编译时加上 -pthread
2017-08-13 09:40:52 3284
转载 libc++abi Specification
void* __cxa_allocate_exception(size_t thrown_size) throw();Effects: Allocates memory to hold the exception to be thrown.thrown_size is the size of the exception object. Can allocate additional
2017-08-09 22:54:15 734
原创 指令movabsq
movabsq是新增的指令。用来将一个64位的值直接存到一个64位寄存器中。 现在的栈帧经常是固定大小的,在函数调用的最开始被设定,在整个调用期间,栈顶指针保持不变,这就可以通过对其再加上偏移量来对相应的值进行操作。
2017-08-09 21:03:23 5622 2
原创 netstat 使用方法(一)
1:netstat -ano | find "80"查出了80 端口的连接情况2:netstat -ano | find "80" /c 查询出netstat -ano命令结果中包含"80"的总数3:netstat -ano|find /c ":1415 " 如果不用:拦头,空格截尾,11415、14151这类也会被统计进来的4:netstat -n|find "ESTA
2017-08-08 22:48:50 3284
原创 C++对象空间分配过程
(一)内存分配在数据段 全局变量或是局部静态变量,分配在数据段。(二)内存分配到栈由C++缺省创建和撤销,自动调用构造函数和析构函数,该方法创建的对象调用类方法时,必须用“.”(三)内存分配到堆用new 动态创建的对象,用delete来撤销该对象,C++用new创建对象时返回的是一个对象指针;new创建的对象不是用“*”或“.”来访问该对象的成员
2017-08-08 22:22:25 2716
原创 C++调用构造函数过程
class A {public:int a1;int a;A(){a=1000;}A(int r){a1=33333;}virtual int getdata(){return 100;}virtual int getD(){return 200;}};class B {public:int b;B(){b=30000;}vi
2017-08-07 22:44:08 687
转载 符号定义伪指令
GNU平台无关符号定义伪指令.global,.local,.set,.equ.global使得符号对连接器可见,变为对整个工程可用的全局变量.global symbol.local表示符号对外部不可见,只对本文件可见.local symbol.set给一个全局变量或局部变量赋值,和.equ的功能一样.set symbol
2017-08-07 19:21:59 1313 1
转载 系统管理员应该知道的20条Linux命令
如果您的应用程序不工作,或者您希望在寻找更多信息,这 20 个命令将派上用场。在这个全新的工具和多样化的开发环境井喷的大环境下,任何开发者和工程师都有必要学习一些基本的系统管理命令。特定的命令和工具包可帮助开发者组织、排查故障并优化他们的应用程序,而且当出现错误时,也可以为运维人员和系统管理员提供有价值的分类信息。无论你是新手开发者还是希望管理自己的应用程序,下面 20 条基本的系
2017-08-03 23:27:13 436
转载 C++中的类所占内存空间总结
空的类是会占用内存空间的,而且大小是1,原因是C++要求每个实例在内存中都有独一无二的地址。(一)类内部的成员变量:普通的变量:是要占用内存的,但是要注意对齐原则(这点和struct类型很相似)。static修饰的静态变量:不占用内容,原因是编译器将其放在全局变量区。 (二)类内部的成员函数:普通函数:不占用内存。虚函数:要占用4个字节,用来指定虚函数的虚拟函数表的
2017-08-03 23:13:44 262
转载 C++虚函数详解
1:在计算机中虚函数表也是占用一定到的内存空间的,且虚函数表由于一旦产生就具有不变性,所以编译器就会经量把它放到稳定(或者说是只读)的内存区。虚函数表vtable在Linux/Unix中存放在可执行文件的只读数据段中(rodata)。在gcc编译器的实现中虚函数表vtable存放在只读数据段.rodata中。2:实例化类的对象时,对象内存中除了成员变量的大小,还有一个虚函数表指针,而且虚函数表
2017-08-03 23:11:09 388
原创 undefined reference to `vtable for __cxxabiv1:
一、gcc换成g++编译器编译。二、在gcc后面加上-lstdc++.
2017-08-02 22:38:02 3468
原创 C++ struct 与class
从语法上来讲,class和struct做类型定义时只有两点区别:1.默认继承权限,如果不指定,来自class的继承按照private继承处理,来自struct的继承按照public继承处理;2.成员的默认访问权限。class的成员默认是private权限,struct默认是public权限。以上两点也是struct和class最基本的差别,也是最本质的差别;1:Struct
2017-08-02 17:44:25 239
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人