实现一个简单的计算动态链接库:升级动态链接库后,在不重新编译主程序的情况下,直接生效. lib库: #cat math.c #include <stdio.h> int add(int x, int y) { return (x + y); } int sub(int x, int y) { return (x - y); } int mul(int x, int y) { return (x * y); } int div(int x, int y) { return (x/y); } 生成…
转载:http://www.cnblogs.com/aLittleBitCool/archive/2011/10/18/2216646.html 异步io,很好玩的一个东西,从接口来看,封装的比较厉害,有时间研究内部实现,可以在项目中考虑替代select. libaio是Linux下的一个异步非阻塞接口,它提供了以异步非阻塞方式来读写文件的方式,读写效率比较高. 首先推荐两个介绍Linux I/O模型的页面,写的很好: http://www.ibm.com/developerworks/cn/l…
    前言 在做开发的过程中难免需要给内核及下载的一些源码打补丁或者说是升级,所以我们学习在Linux下使用diff制作补丁以及如何使用patch打补丁显得尤为重要. diff与patch命令介绍 1. diff命令 NAME diff - find differences between two files SYNOPSIS diff [options] from-file to-file -------------------- 简单的说,diff的功能就是用来比较两个文件的不同,然后记录…
以前写过一个关于linux下用c++写动态链接库无法通过的解决方案,今天看到<linux C程序设计-王者归来>这本书,书中有个更容易的解决方案,特此记录下来 书中使用的是c语言,我改用c++试了一下,依旧可以运行: 先来写动态库文件: //lib.cpp1 int add(int a,int b) { return a+b; } (*前面写过一个复杂的,这次就简单些举个例子吧*) 书中运用了导出外部函数的做法,先写了一个使用库函数的头文件 //lib.h extern int add(int…
LINUX系统中动态链接库的创建与使用 http://www.cnblogs.com/ardar/articles/357321.html 正常C源文件编写,编译时-shared即可得到SO, gcc -shared add.c -o add.so 使用如下: #include<stdio.h> #include<dlfcn.h> int main() { int result=0; int (*add_fun)(int a, int b); //result = add(2,3)…
库有动态与静态两种,动态通常用.so为后缀,静态用.a为后缀.例如:libhello.so libhello.a 为了在同一系统中使用不同版本的库,可以在库文件名后加上版本号为后缀,例如: libhello.so.1.0,由于程序连接默认以.so为文件后缀名.所以为了使用这些库,通常使用建立符号连接的方式. ln -s libhello.so.1.0 libhello.so.1 ln -s libhello.so.1 libhello.so 使用库 当 要使用静态的程序库时,连接器会找出程序所需…
理解 Linux shell 中的一个方言:2>&1  2016-11-14 杜亦舒 前言 在使用 linux 命令或者 shell 编程时,这个用法常会遇到 2>&1 如果是刚开始接触Linux,这个东西的确不好理解,因为他没有直观的含义,不像一个命令,例如 cp是 copy 的简写,很好记. 我以前刚用Linux时就对这个东西迷糊了一段时间,今天刚好看到一篇文章介绍他,感觉很有必要总结出来,分享给还不是很理解这个方言的朋友. 下面看一个命令示例,然后分析下他是如何工作的:…
FMXLinux 是一个可以用来开发 Linux 桌面软件的第三方插件,它需要配合 Delphi 10.2 Toyko 官网:http://www.fmxlinux.com/ 使用方法:开启 FMX 工程,在工程项目上按鼠标右键加入 “Linux platform”: TPath.xxx 路径测试:(编译好的 [试玩]TestPath_FMXLinux.zip ) ps. 其中 AppPath 是显示 ParamStr(0) 内容 文件发布测试: procedure TForm1.FormCre…
//;分号开头,用于防止代码压缩合并时与其它代码混在一起造成语法错误 //而事实证明,uglify压缩工具会将无意义的前置分号去掉,我只是习惯了这么写 //(function(){})();立即执行函数,闭包,避免污染全局变量 //通常一个插件只暴露一个变量给全局供其它程序调用 //还有其它写法,运算符+函数体+括号 //例:!function(){}(); +function(){}(); -function(){}(); // void function(){}(); 等等只要能对函数返回值…