自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(22)
  • 资源 (1)
  • 收藏
  • 关注

原创 python3请求网页出现乱码

今天使用python脚本的requests请求一个网页,返回的内容出现了乱码,代码和现象如下图1:import requestsdef do_post(): r =requests.get("xxxxx") if r.status_code != requests.codes.ok: return None print(r.text)上网搜了解决方案,是页面编码问题导致的,做个记录。1.较为规范的网页,都会在返回头中指明charset,..

2021-08-31 18:51:39 1522 2

原创 libcurl库的一个简单用例

遇到一个新需求,需要在c/c++中发起http请求。不想用socket组装报文,经别人提议决定用curl库,由此踩入一个大坑= = 首先,我们需要一个libcurl库 可以先去官网下载curl项目,解压后进入基础目录的projects文件夹执行generate.bat脚本,就会在该目录中生成windows目录。根据vs版本选择对应目录打开项目即可。此处我选了vc14。进入项目后,有多个编译版本可选。因为我只需一个demo库,选了最简单的LIB Release进行编译,生成的...

2020-07-17 10:20:28 1539

原创 JNA —— Java调用C/C++动态库

工作所需,要使用Java调用c/c++的动态库,实现Java程序使用动态库中的函数。搜索了一番,常用的有JNI、JNA方法。JNI(Java Native Interface)JNA(Java Native Access)JNI需要Java和c/c++

2020-06-09 23:01:12 13297 7

原创 多个c/c++动态库函数同名冲突解决方法

最近某个程序需要调用多个动态库,但是不同的动态库中使用了功能不同的同名函数,导致调用出现偏差,为此做了些面向搜索引擎的编程工作(俗名百度google一下)。。。样例假设有动态库libFuncA.so和libFuncB.so,他们的内部实现分别为:/*func_A.c*/#include<stdio.h>//内部函数int sayHi(){ printf("Hi,t...

2019-12-02 20:07:59 16268 3

原创 c和c++互相调用动态库

平时需要接触c和c++,有时会遇到两种语言互相调用的情况,这时就要对代码进行一些处理,做个记录。前提两种语言是无法直接互相调用的,原因在于c++支持重载,而c不支持。c++因为要支持重载,存在改名机制(也可能是因为有改名机制所以支持重载),即生成的中间文件会对函数名进行改写,将函数名与参数列表相结合生产新的函数名,这样就可以通过不同的函数名来区分重载函数了。而C语言没有改名机制,函数名未改动...

2019-11-20 00:31:58 4225 5

原创 Python调用c/c++动态库(二)

此处是一些延伸补充。先简单列一下:1, python中的字符串是string类型,无法更改,若c的api函数需要传入字符串并进行更改,需使用ctypes使用的create_string_buffer进行转换eg:c端动态库有一个函数,func_name(char * pName),在python端调用,func_name("Alex"),会提示<class 'TypeErro...

2019-11-08 16:40:42 514

原创 base64和url编码注意点

今日联调接口,用python2和Java分别调用,一样的流程结果却不同,做个记录。 该接口是一个http请求,需要将参数进行base64编码,再组成一个json串,再对json串进行url编码,将最终的编码结果进行传输。(没错就是这么复杂 -_-!!) 比对python2和Java代码组成的最终参数,发现长度和内容不一致。查询后发现几个差异点:...

2019-07-25 21:37:17 2003

原创 nm指令

nm指令是names的简称,通过该指令可以列举文件中的符号。 用法:nm [选项] [文件名称] ,若未输入文件名,则默认作用于当前路径的a.out文件。 选项: -a 只显示调试信息 -A 在每行符号信息前,打印查询的文件名 -C 将低级别的符号名称转换为用户级别的名称,意思是转换为用户较容易...

2019-07-05 14:10:23 9379

原创 Python调用c/c++动态库(一)

因为工作需求,最近要使用python在linux环境下调用c/c++的动态库,执行动态库中的函数。这种没接触过的内容,自然首先开启百度谷歌大法。经过一番搜索,尝试使用python的ctypes模块。 一、初识首先自然是查询文档了。附文档链接:https://docs.python.org/zh-cn/2.7/library/ctypes.htmlpython2.7文档描述:“cty...

2019-05-13 21:28:31 23097 10

原创 c/c++获取可执行程序的绝对路径(Linux、Windows)

今天改动一个程序,需要在linux环境获取执行程序的绝对路径,搜索到两个函数,在此做下记录和对比。 函数1:char *getcwd(char *buf, size_t size); 头文件:unistd.h 获取到可执行程序的绝对路径,存放到buf中,size是指定的buf大小。若size指定的大小比 buf短,会返回NULL。若不知道buf的...

2019-04-02 15:45:20 22319 1

原创 python的编码问题

看了好几篇编码的文章,表示还是理不顺。。仅做一些记录。一、unicode和utf-8 unicode记录了全球的所有语言,包含了跟全球所有国家编码的映射关系。但是都用unicode来表示编码太占空间,就创建了其他的编码方案,如utf-8、gbk等。 utf-8是根据内容来动态分配字节数记录内容。使用1、2、3、4个字节表示所有字符,优先使用1个字符、无法满足则使增加一个字节...

2019-01-23 18:35:52 212 3

原创 splite指令

    最近经常要更新程序到不同环境,打包成tar.gz包后发送,因为包太大要传输很久,偶尔异常中断就白等了。还好,搜到了split指令。先看看其帮助指示:[root@localhost similarity]# split --help用法:split [选项]... [输入 [前缀]]Output fixed-size pieces of INPUT to PREFIXaa, P...

2018-12-02 21:48:57 1878

原创 linux c文件相关操作

1,操作文件,需要文件句柄 ,头文件 #include<stdio.h>若用fgets函数读取文件内容,需要注意fgets函数的使用。函数声明:char *fgets(char *str, int n, FILE *stream)参数:str -- 这是指向一个字符数组的指针,该数组存储了要读取的字符串。n -- 这是要读取的最大字符数(包括最后的空字符)。通常是使用...

2018-11-05 20:07:35 160

原创 linux文本处理踩的坑

1,有个文件test.txt,内容为:lwhc08131209.jpg,IsBoy:true,HasGF:false,account_bank:local_banklwhc08131210.jpg,IsBoy:true,HasGF:false,account_bank:local_banklwhc08131211.jpg,IsBoy:true,HasGF:false,account_ba...

2018-10-18 18:43:38 162

原创 linux 批量修改文件后缀名

今天遇到的一个问题,要将一批jpg文件后缀名更改为png,凭感觉能用awk指令进行修改,就进行了尝试。想到的思路是:先列举出文件名称,再用awk对文件名称进行处理分割,最后将后缀名进行修改。首先列举出文件名称,得到如图:之后考虑获取名称,如“abad.jpg”,再将名称以“.”号分割,得到名称“abad”,再进行下一步处理。因此用awk进行处理。其中指令awk '{spl...

2018-10-10 20:50:23 14069

原创 设置linux的tab宽度

    ubuntu环境vim中默认tab键为8个空格宽度,需要更改vim的配置文件,配置文件是:/etc/vim/vimrc。     打开该配置文件,在文件末尾输入:set tabstop=4set expandtabset autoindent 其中,set tabstop = 4 表示设置一个tab为4个空格的宽度。set expandtab 表示设置一个tab键...

2018-09-17 13:53:11 1666

原创 Vim删除特定字符的行

Vim 删除指定条件的行::g/xxx/d,删除包含xxx的行:v/xxx/d,删除不含xxx的行

2018-08-08 17:16:49 5529

原创 makefile遇到的一些坑

先记录下要点吧:1,c和c++的混合编程,是否加extern C,gcc和g++的区别2,静态库和动态库的生成及链接3,动态库链接静态库,则静态库生成中间程序(如.o时)需增加-fPIC参数4,-fPIC -shared的真正含义,及该参数放置于-o之前或之后的区别(未查询到,求大神告知)封装成静态库.a,不需要加-fPIC 和 -shared参数,动态库需要。但是如果封装...

2018-07-18 19:18:57 527

原创 bat执行总是一闪而过

    今天临时需要写个bat,进行一些简单操作。写了个简单demo,运行时总是一闪而过,加了pause也没用,查了好久才发现我用的编辑器默认保存为utf-8编码,而cmd控制台是用gbk编码,运行时都是乱码自然就不生效了 =_=!!...

2018-06-28 15:20:31 12686

原创 可执行程序链接动态库

可执行程序链接动态库,只需一次链接,链接之后启动程序,不再需要动态库就可以一直运行。除非重新启动程序。

2018-06-25 20:13:54 1214 1

原创 strings指令

表示用了很久的linux(其实并没有+_+),strings指令还是最近为了识别动态库版本才发现的,在此做一个汇总。 首先当然是查看帮助文档了,输入strings --help。alex@alex:~$ strings --helpUsage: strings [option(s)] [file(s)] Display printable strings in [fil...

2018-06-24 22:45:29 2204

原创 tar指令

    tar指令,应该是很常用的指令了,最常用于打包和解包,但在使用过程中还是经常敲错,因此记录一下注意事项。    在虚拟机中模拟一下,/home/alex/test下有多个文件和文件夹。本文中都是在/home/alex目录进行操作。   最常用的打包压缩功能:tar -zcvf  xxx.tar.gz  test。结果会在当前路径下产生一个xxx.tar.gz文件,内容就是 /home/al...

2018-06-20 20:43:27 3677

Java Web开发学习路线图(JBoss Seam方向)

Java Web开发学习路线图(JBoss Seam方向)

2012-04-21

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除