程序和进程的区别 进程是动态的,程序是静态的 进程是暂时的,程序是永久的, 进程是通过程序运行时得到的 程序是一个数据文件,进程是内存中动态的运行实体,用来存储数据段,代码段,指针等 程序和进程的关系 一个程序可能对应多个进程 一个进程可能包含多个程序,比如一个程序依赖多个其它动态库时 进程和线程的 ...
分类:
编程语言 时间:
2018-08-05 23:33:19
阅读次数:
316
一.库:分为静态库和动态库 1.静态库:在链接阶段 将代码完整拷贝到exe中 ①使用方法:#pragma comment(lib,"xx.lib") ②注意:pragma在预处理时保留 链接阶段生成 静态库只需导.h和.lib 2.动态库:在链接阶段 将引入库拷贝到exe中 ②使用方法同静态库 但这 ...
分类:
其他好文 时间:
2018-08-05 16:49:38
阅读次数:
175
参考: "http://libevent.org" "Libevent使用例子,从简单到复杂" 1. libevent 使用第三方库我一般都偏爱最新的版本,libevent也是如此,所以我以 为例,在官网上可以下载。 编译、使用 头文件在 文件夹下,编译生成的动态库在 文件夹下。 使用时,需要包含头 ...
分类:
其他好文 时间:
2018-08-01 22:34:48
阅读次数:
193
1.C++跨平台问题说明在x86平台下编译C++工程过程后,运行编译好的C++共享库时出现符号表__atomic_fetch_sub_4找不到的问题,如图1.1所示。图1.1符号表缺失2.问题解决符号表缺失的原因是由于在跨平台编译时要加对应的平台编译选项,在x86平台下要增加-march=i686选项,如图2.1所示。图2.1增加Makefile编译选项编译上传后,再运行动态库,发现动态库没有出现
分类:
编程语言 时间:
2018-07-30 18:37:56
阅读次数:
204
1,新建控制台工程xdltest,改属性-配置属性-常规-配置类型为 动态库.dll或静态库.lib2,打开工程后添加 dltest.h, dltest.cpp,其中.h与.cpp名字没必要一样3,编写代码 dltest.h#pragma once_declspec(dllexport) void ...
分类:
编程语言 时间:
2018-07-27 20:53:06
阅读次数:
185
一:Linux虚拟地址空间布局 (转自:Linux虚拟地址空间布局) 在多任务操作系统中,每个进程都运行在属于自己的内存沙盘中。这个沙盘就是虚拟地址空间(Virtual Address Space),在32位模式下它是一个4GB的内存地址块。在Linux系统中, 内核进程和用户进程所占的虚拟内存比例 ...
分类:
编程语言 时间:
2018-07-22 20:50:36
阅读次数:
225
前提:本文是基于Linux系统下的编程与学习 补充:头文件卫士,避免头文件重复包含。 命令:nm nm 二进制文件名; 可以查看二进制文件的符号表 那么符号表里都有哪些内容呢? 全局变量的名字, 静态局部变量的名字, 函数的名字 静态库和动态库 生成静态库: a. 将要加入静态库的源文件编译成目标文 ...
分类:
其他好文 时间:
2018-07-22 14:10:36
阅读次数:
119
前提:本文是基于Linux系统下的编程与学习 动态加载,按需加载,工程师需要动态库的时候,才将动态库加载到内存。 dlopen(3)#include <dlfcn.h>void *dlopen(const char *filename, int flags);功能:打开一个共享库文件,返回一个han ...
分类:
其他好文 时间:
2018-07-22 14:09:13
阅读次数:
125
操作系统经典的三态如下: 1、就绪态 2、等待(阻塞) 3、运行态 其转换状态如下图所示: 操作系统内核中会维护多个队列,将不同状态的进程加入到不同的队列中,其中撤销是进程运行结束后,由内核收回。 以上的三态是操作系统原理中给出的,但是各个操作系统的平台实现这些状态的时候是有差异的,例如linux操 ...
分类:
系统相关 时间:
2018-07-21 17:10:00
阅读次数:
253
这两天了解了一下java调用dll动态库的方法,总的有三种:JNI、JNA、JNative。其中JNA调用DLL是最方便的。 ·JNI ·JNA ·JNative java使用 JNI来调用dll动态库的调用,工作量略大,一般情况下开发人员会选用JNA或JNative。 使用JNative调用DLL ...
分类:
编程语言 时间:
2018-07-21 16:49:47
阅读次数:
283