
linux
文章平均质量分 80
Sunny04
生命不息,折腾不止
展开
-
动态库编译环境 CPLUS_INCLUDE_PATH 引发的bug追踪定位过程
动态库编译环境CPLUS_INCLUDE_PATH 引发的bug追踪定位过程问题背景:最近做项目,同一份动态库代码,A同学编译出来可以正常加载运行; B同学编译也能成功,但加载的时候提示 动态库有未定义符号 XXXX。 A同学编译出来的so里面,没有这个符号。问题定位过程:1. 用nm 查看未定义符号XXXX : nm a.so| grep XXXX 查看该符号是不是 未定义的。2. 查看这个未定义的符号来自哪里。 看看nm的参数有没有办法把源文件打印出来。nm [o...原创 2021-01-30 21:15:46 · 491 阅读 · 0 评论 -
scp 动态库导致core的原因分析
scp 动态库导致core的原因分析:项目背景:我们写的业务代码,编译出来是so文件,用exe进行dlopen加载so动态库。 在服务器上面,我们会使用 scp 把新编译的so拷贝到服务器上面。 这样导致的问题是core的位置不固定,杂乱无章。原因分析:(from 和 to 都是我们编译的动态库,有正在运行的程序引用它):cp from to // to文件是已经存在的。 被覆盖文件 to的inode依旧不变(属性也不变),内容变为from的scp 172.172.xx.xx:/from原创 2021-01-28 20:37:34 · 660 阅读 · 0 评论 -
双buffer可用性设计-路由并发读写
原创 2020-11-02 17:49:32 · 359 阅读 · 0 评论 -
Linux下查看分区/文件夹大小
Linux下查看分区/文件夹大小linux下:一套电脑可以有多个硬盘,每个硬盘只能有总个数不能超过4个的分区(包括主分区和扩展分区)扩展分区可以划分为多个逻辑分区。df命令可以显示目前所有文件系统的可用空间及使用情形.参数-h 表示使用「Human-readable」的输出,也就是在档案系统大小使用 GB、MB 等易读的格式。例如:[yayug@yayu ~]$ df转载 2015-07-24 17:39:23 · 2480 阅读 · 0 评论 -
linux 性能分析工具
1. iostat-d -k 1 10 -- 查看IO吞吐量2. iostat-d -x -k 1 10 --查看IO设备使用率( %util ),响应时间(await)3. cat /proc/net/sockstat 查看socket状态4. iptraf – 查看实时网络状态5. tcpdump – 查看详细网络流量数据包6. net原创 2015-08-05 11:24:33 · 622 阅读 · 0 评论 -
linux通配符,grep和 egrep区别
前些天写字符串匹配的脚本,如下: 1 #!/bin/sh 2 3 echo"path: /home/appadmin/workspace" 4 echo"usage: "$0" [h|cpp|both|all] string_symbol" 5 echo"space use: grep ' 'str" 6 7 if [ $1 = 'h']; 8原创 2015-11-28 12:11:09 · 14511 阅读 · 1 评论 -
linux 和 window 的EOF
学习linux 和 window 的EOF,记录如下。1. 文件read在window下创建一个文件,输入如下: 文件名: window.log 123456789 123 在linux下也创建一个文件,输入如下: 文件名: linux.log 123456789 123在16进制下查看比较两个文件,截图如下: window.log linux.log 可见,window.原创 2015-12-09 17:30:12 · 1348 阅读 · 0 评论 -
shell脚本中单引号和双引号的区别
转自: http://blog.youkuaiyun.com/luo6620378xu/article/details/9081417shell脚本中的单引号和双引号一样都是字符串的界定符,而不是字符的界定符。单引号用于保持引号内所有字符的字面值,即使引号内的\和回车也不例外,但是字符串中不能出现单引号。(注意是所有,只是单引号本身不能够出现在其中)。 双引号用于保持引号内所有字符的字面转载 2016-01-13 11:13:44 · 861 阅读 · 0 评论 -
find mtime参数+号,-号,不带符号的用法
find . -mtime +0 -type f -name "oms*" | xargs rm -f 删除24小时以前 oms格式的文件 #按文件更改时间来查找文件,-n指n天以内,+n指n天以前。大家在使用find命令中的mtime参数时候,会看到官方的解释如下:-mtime nFile's data was last modified n*24 h原创 2016-05-24 10:52:58 · 16575 阅读 · 2 评论 -
Linux进程栈和线程栈
总结: 1、进程主线程的栈大小是在进程执行的时刻才能指定的,即不是在编译的时候决定的,也不是在链接的时候决定的 2、进程主线程的栈大小是随机确定的至少比线程栈要大,但是不到线程栈大小的2倍 (ulimit -s 查询到的是线程的栈大小,) 3、线程栈大小是固定的,也就是ulimit -a 显示的值 4. 线程的栈大小, 不是从进程主线程栈大转载 2017-04-17 15:11:42 · 1053 阅读 · 0 评论 -
thread线程栈size及局部变量最大可分配size
进程是操作系统的最小资源管理单元, 线程是操作系统最小的执行单元。 一个进程可以有多个线程, 也就是说多个线程分享进程的资源,包括栈区,堆区,代码区,数据区等。sundh@linhaoIPTV:~$ ulimit -acore file size (blocks, -c) 0data seg size (kbytes, -d) unlimitedsc原创 2015-07-08 17:20:16 · 8191 阅读 · 1 评论 -
ELF与BIN文件区别
Gcc 编译出来的是ELF文件。通常gcc –o test test.c,生成的test文件就是ELF格式的,在linuxshell下输入 ./test就可以执行。Bin 文件是经过压缩的可执行文件,去掉ELF格式的东西。是直接的内存映像的表示。在系统没有加载操作系统的时候可以执行。elf(executable and link format)文件里面包含了符号表,汇编等。转载 2014-05-29 17:13:06 · 15487 阅读 · 0 评论 -
linux 指令
linux查找系统某个函数或宏定义方法find -type f -name "*.c" | xargs grep -n ""find ./ -name "*.[cpp|h|c]" -exec grep "ID_MENU_SETUP_DEVICE_MANAGER_PRINTER_SETTINGS" {} \; -print0grep -r "string" ./原创 2014-05-29 17:09:50 · 759 阅读 · 0 评论 -
Ubuntu下编译新内核
MVC设计模式 所谓的MVC,就是Model,View,Controller的首字母组合起来的一种设计模式,主要思想就是把显示与逻辑实现分离。Model用于保存上下文状态、View用于显示、而Controller则是用于处理用户交互。三者之间有着如下图所示的交互模型,交互只到Controller,而显示更新只通过View进行,这两者再与Model交换界面状态信息: 在现代的图形转载 2014-05-29 19:32:27 · 908 阅读 · 0 评论 -
出错处理之assert,abort,exit,atexit,strerror
abort : 产生 SIGABRT 信号。非正常退出,即在程序碰到灾难性错误时强制退出。由于是非正常退出,因此不会做其它任何操作。A2L6iit07R+bB.x0mo0atexit是在执行 exit 函数时设置要作的工作,实际就是调用要在程序退出想让程序执行的函数。Linuxeden博客家园9U&T*\O,WLinuxeden博客家园4bH;h-p转载 2014-05-29 19:40:01 · 920 阅读 · 0 评论 -
window/linux下open()相对路径的误区
在代码编程中,相对路径有这样的用法:#include “./inc/a.h”… open(“.\inc\a.txt”,O_RDONLY); //linuxopen(“.//inc//a.txt”,O_RDONLY); //windows…在程序编译连接的时候, #include “./inc/a.h”中的相对路径.会被解析成*.v原创 2014-05-29 19:45:43 · 5643 阅读 · 0 评论 -
64位系统执行32位程序报No such file or directory
前些天,从别人的服务器上面拷贝一个原创 2014-07-09 11:30:04 · 2031 阅读 · 0 评论 -
coredump 分析(汇总)
理解堆栈及其利用方法 - http://club.alibabatech.org/article_detail.htm?articleId=18http://blog.youkuaiyun.com/anzhsoft/article/details/18730605转载 2014-09-26 14:57:10 · 1119 阅读 · 0 评论 -
segmentation fault 之 栈溢出分析
栈溢出,就是说栈的空间已经不够了。什么时候会用到栈的空间呢?一般的指令不可能把栈搞到溢出。通常是局部变量和函数调用(函数参数和返回地址)会占用栈的空间。就我个人的经验而言,栈溢出不过两种情形:如果开一个很大的局部变量,会造成栈溢出;如果函数无穷递归,也是会造成栈溢出的。转载 2014-09-25 17:57:56 · 3596 阅读 · 0 评论 -
linux获取时间函数及计算时间差
参考: http://www.cnblogs.com/krythur/archive/2013/02/25/2932647.html第一章 获取时间函数1. char * asctime(const struct tm * timeptr); 函数说明 asctime()将参数timeptr所指的tm结构中的信息转换成真实世界所使用的时间日期表示方法,然原创 2014-12-10 18:20:46 · 23025 阅读 · 0 评论