
Linux应用
文章平均质量分 63
苦行僧Walker
这个作者很懒,什么都没留下…
展开
-
arm-linux-gdb和gdbserver调试交叉编译的程序
交叉编译gdb调试程序的思想:gdbserver在arm端,arm-linux-gdbz原创 2014-10-22 13:49:30 · 2483 阅读 · 0 评论 -
warning:ISO C90 forbids mixed declarations and code
warning:ISO C90 forbids mixed declarations and code变量定义之前任何一条非变量定义的语句(重视:语句是会带分号的)都会引起这个警告! 将非变量的定义移到变量定义之后 即可,也就是变量的声明 必须在执行语句之前。转载 2014-06-19 18:58:35 · 968 阅读 · 0 评论 -
Linux错误代码定义表
查看错误代码errno是调试程序的一个重要方法。当linuc C api函数发生异常时,一般会将errno变量(需include errno.h)赋一个整数值, 不同的值表示不同的含义,可以通过查看该值推测出错的原因。在实际编程中用这一招解决了不少原本看来莫名其妙的问题。比较麻烦的是每次都要去linux源代码里面查找错误代码的含义,现在把它贴出来,以后需要查时就来这里看了。以下来自linux转载 2014-07-10 13:37:53 · 889 阅读 · 0 评论 -
linux共享内存介绍和使用举例
1、共享内存简介原创 2014-06-03 11:37:21 · 1003 阅读 · 0 评论 -
多进程访问动态库全局变量问题
1、如果你做的动态库里面有全局变量,而且你想让不同的jinc原创 2014-05-30 11:29:15 · 7131 阅读 · 0 评论 -
/include/sys/types.h:151: error: duplicate 'unsigned' uint,ulong和ushort自定义和工具链报冲突的规避方法
/opt/compiler/glibc-oabi-toolchain-arm-generic/arm-unknown-linux-gnu//sys-root/usr/include/sys/types.h:151: error: duplicate 'unsigned'/opt/compiler/glibc-oabi-toolchain-arm-generic/arm-unknown-linu原创 2014-06-09 16:39:20 · 4776 阅读 · 0 评论 -
unix域协议(类TCP)实现本机进程间通讯
1、服务器端程序:原创 2014-06-30 16:52:02 · 1006 阅读 · 2 评论 -
父进程退出,保证子进程交由init。
最近写代码遇到fujinch原创 2014-06-30 14:22:56 · 3385 阅读 · 0 评论 -
linux检查进程是否正在正常运行
static int check_pid(const char *psAppName){FILE *psFile = NULL; int iRet = FAIL;char acCmd[128] = {0};char acBuff[PID_INFO] = {0};char *p = acBuff;pid_t iWnePid = -1;char *psStrtok原创 2014-06-30 16:10:54 · 1576 阅读 · 0 评论 -
程序退出,段错误segment default问题定位
1、backtrace和backtrace_symbols函数这两个函数的主要作用是原创 2014-07-18 10:36:42 · 3098 阅读 · 0 评论 -
POSIX定时器:timer_settime()
最强大的定时器接口来自POSIX时钟系列,其创建、初始化以及删除一个定时器的行动被分为三个不同的函数:timer_create()(创建定时器)、timer_settime()(初始化定时器)以及timer_delete(销毁它)。创建一个定时器int timer_create(clockid_t clock_id, struct sigevent *evp, timer_t *tim转载 2014-07-19 14:11:51 · 1073 阅读 · 0 评论 -
POSIX:TMR间隔定时器
/**************************************************************************** 功 能: 定时器回调函数 定时时间到通知POS三分钟内不要休眠 输入参数: v:sigev_value作为入参 输出参数: 返 回 值: 无****************************原创 2014-07-29 17:30:36 · 1492 阅读 · 0 评论 -
用signal实现调试信息的动态控制——syslog和signal
目的:我们调试代码大部分的习惯都是shurch原创 2014-06-21 11:13:45 · 803 阅读 · 0 评论 -
GDB arm-linux交叉编译移植和使用方法(特别是对于正在运行的程序或者段错误的程序进行分析)
1、ncurse库的移植原创 2014-10-22 11:23:10 · 6440 阅读 · 0 评论 -
SQLITE用法
转载自:http://blog.chinaunix.net/uid-20551291-id-1927010.html建立数据库档案 用sqlite3建立数据库的方法很简单,只要在shell下键入(以下$符号为shell提示号,请勿键入):$ sqlite3 foo.db如果目录下没有foo.db,sqlite3就会建立这个数据库。sqlite3并没有强制数据库档名要怎么取,转载 2014-11-27 17:10:40 · 1043 阅读 · 0 评论 -
mount nfs命令
1、启动nfs服务service nfs restart2、s原创 2014-10-20 11:44:29 · 1636 阅读 · 0 评论 -
字符串转换函数函数:atof,atoi,atol,strtod,strtol,strtoul,toascii,tolower,toupper
本文转自:http://www.cnblogs.com/xingma0910/archive/2012/10/23/2734996.htmlatof(将字串转换成浮点型数) 相关函数 atoi,atol,strtod,strtol,strtoul表头文件 #include 定义函数 double atof(const char *nptr);函数说明 atof()会扫描参数np转载 2014-09-16 16:14:38 · 798 阅读 · 0 评论 -
EPIPE和ECONNRESET
EPIPE和ECONNRESETpage1:假设Server A上面有Process X,它有一个socket M,和另外的Server B上面的Process Y的 Socket N以TCP协议连接上了,那么,据我所知,有2种情况会出现RST包:(1)X没有close socket就退出了,然后Y继续向M send数据,A的内核就会发送RST 到 socket N;(2)X设转载 2014-09-23 21:01:18 · 1326 阅读 · 0 评论 -
initcall机制在应用程序中的使用
首先尊重一下网上的朋友,转载了他的一些东西,自己也加入了自己的原创 2014-09-20 16:34:41 · 1131 阅读 · 0 评论 -
多个动态库代码构建-项目经验积累
多个动态库代码构建1、动态库现在在我们的开发中用的原来越多,当然好处不需多说。还是扯扯吧,呵呵!linux应用层程序开发中系统框架的搭建有两种:(1)采用多进程的方式,然每个独立的进程干各自的事情,就如同我们日程生活中大家的工作岗位各自分工一样,然后需要打交道的时候用进程间通讯来便可以了,同时还有一个最大的优点,维护的人只需要关注自己的这个进程便可无须去了解其他的进程在干什么,原创 2014-09-20 10:24:42 · 1363 阅读 · 0 评论 -
linux 字节序问题处理
uint32_t htonl(uint32_t hostlong); uint16_t htons(uint16_t hostshort); uint32_t ntohl(uint32_t netlong); uint16_t ntohs(uint16_t netshort);原创 2014-07-31 15:24:51 · 1040 阅读 · 0 评论 -
写宏遇到的问题:warning: backslash and newline separated by space
转载自:http://blog.youkuaiyun.com/liyongming1982/article/details/6663031 原来是因为\ 后面多了一个空格 附上一个刚刚写得调试用的例子:转载 2014-07-30 16:19:31 · 1343 阅读 · 0 评论 -
error: implicit declaration of function 'gettimeofday'
gettimeofday的头文件定义是:#include 问题定位是我写的是#include 实际sh原创 2014-07-31 09:12:48 · 3472 阅读 · 1 评论 -
linux信号定义
编号为1 ~ 31的信号为传统UNIX支持的信号,是不可靠信号(非实时的),编号为32 ~ 63的信号是后来扩充的,称做可靠信号(实时信号)。不可靠信号和可靠信号的区别在于前者不支持排队,可能会造成信号丢失,而后者不会。下面我们对编号小于SIGRTMIN的信号进行讨论。1) SIGHUP本信号在用户终端连接(正常或非正常)结束时发出, 通常是在终端的控制进程结束时, 通知同一session内转载 2014-07-17 21:07:17 · 847 阅读 · 0 评论 -
warning: suggest parentheses around assignment used as truth value
这句是非常经典、简洁的指针操作语句,但是它在gcc编译器下居然会出现警告。warning: suggest parentheses around assignment used as truth value理由:在C语言中,非0即代表TRUE,反之为FALSE。上面的语句以*s的值用于最后的判断。但是由于长期的编程实践告诉我们,人们经常在“=”和“==”的使用上出现手误,所以g转载 2014-06-24 20:08:23 · 2379 阅读 · 0 评论 -
dlopen、dlsym和dlclose的使用和举例
之前用过这三个函数一直没时间整理一下。今天抽时间整理一下。1、函数简介dlopen基本定义功能:打开一个动态链接库 包含头文件: #include 函数定义: void * dlopen( const char * pathname, int mode ); 函数描述: 在dlopen的()函数以指定模式打开指定的动态连接库文件,并原创 2013-11-07 00:10:19 · 4584 阅读 · 0 评论 -
嵌入式sqlite3数据库编程介绍
本文转自:http://www.cnblogs.com/kfqcome/archive/2011/06/27/2136999.html 一.使用流程要使用sqlite,需要从sqlite官网下载到三个文件,分别为sqlite3.lib,sqlite3.dll,sqlite3.h,然后再在自己的工程中配置好头文件和库文件,同时将dll文件放到当前目录下,就完成配置可以使用sqlite了。转载 2013-11-19 21:29:43 · 1098 阅读 · 0 评论 -
fork和exec()函数族
进程的启动方式:(1)通过脚本启动的方式,即内核控制启动一般放在init.rc里面。(2)fork子进程后通过exec函数族启动新的进程(3)采用系统的system调用来实现在之前讲解的fork子进程的基础上通过exec函数族来看如何实现新进程的启动。 1、首先讲解一下exec()函数族 exec( )函数族下面我们来看看一个进程如何来启动另一个程序的执行。在L原创 2013-11-05 09:18:01 · 2354 阅读 · 0 评论 -
fork和vfork函数的区别
fork()与vfork()都是创建一个进程,那他们有什么区别呢?总结有以下三点区别: 1. fork ():子进程拷贝父进程的数据段,代码段 vfork ( ):子进程与父进程共享数据段 2. fork ()父子进程的执行次序不确定 vfork 保证子进程先运行,在调用exec 或exit 之前与父进程数据是共享的,在它调用exec 或exi转载 2013-11-04 16:09:35 · 978 阅读 · 0 评论 -
简述fork函数的用法
1、fork函数的定义 头文件:#include#include 函数原型: pid_t fork( void);(pid_t 是一个宏定义,其实质是int 被定义在#includesys/types.h>中)返回值: 若成功调用一次则返回两个值,子进程返回0,父进程返回子进程ID;否则,出错返回-1 函数说明:原创 2013-11-04 14:51:48 · 2912 阅读 · 0 评论 -
经典SQL语句大全
ostar_liang0我的:收件箱资源博客空间设置|帮助|退出首页业界移动云计算研发论坛博客下载更多 本文转自:http://blog.youkuaiyun.com/hackervs/article/details/3537445 下列语句部分是Mssql语句,不可以在access中使用 SQL分类: DDL—数据定义语言(转载 2013-11-19 10:35:55 · 1230 阅读 · 0 评论 -
sql 语句的limit的用法
转载自:http://hi.baidu.com/miraclestorm/item/056e07d4a7c9710b20e25052SELECT * FROM table LIMIT [offset,] rows | rows OFFSET offset mysql> SELECT * FROM table LIMIT 5,10; // 检索记录行 6-15//为了检索从某一个转载 2013-11-19 10:28:34 · 1427 阅读 · 0 评论 -
SQLite的编译指令Pragma
本文转载自:http://hi.baidu.com/dushm/item/6d8cc8d6faf1111e21e25026PRAGMA command 是一个特殊的命令。它用于修改 SQLite 库操作或查询库以取得内部(非表)数据。 PRAGMA 命令可以使用与其它 SQLite 命令(如 SELECT、INSERT)相同的接口,只在有如下几个重要方面转载 2013-11-16 10:10:58 · 1347 阅读 · 0 评论 -
linux系统自启动脚本整理
==原创 2013-10-31 19:54:59 · 803 阅读 · 0 评论 -
linux如何看物理内存的使用率
原文源自:http://blog.youkuaiyun.com/fujs999/article/details/7402250 Linux下看内存和CPU使用率一般都用top命令,但是实际在用的时候,用top查看出来的内存占用率都非常高,如:Mem: 4086496k total, 4034428k used, 52068k free, 112620k buffersSwap:转载 2013-10-31 10:51:01 · 3054 阅读 · 0 评论 -
如何查看库里面包含的函数
使用linux系统的nm命令。例如nm lib_a.so。很简单。在我用的时候遇到了一个问题:nm: lib_a.so: no symbols此处的.so文件时动态链接库文件。该文件时elf(Executable and Linkable Format)文件的一种,有两个符号表,“.symtab”和“.dynsym”。“.dynsym”只保留“.symtab”中的全局符号(global s原创 2013-11-06 21:20:46 · 4337 阅读 · 0 评论 -
zlib库使用简单讲解
由于想学习libpng库,搜索资料发现libpng库依赖zlib库的gz格式文件压缩和解压功能,所以先得了解下zlib库的功能和使用方法。本文大部分摘自:http://blog.163.com/yuan_zhch/blog/static/193790046201182102746293/1.zlib库简介 zlib 是通用的压缩库,提供了一套 in-memory 压缩和解压函数,并转载 2013-11-23 14:42:47 · 18622 阅读 · 0 评论 -
pthread_detach和pthread_join的用法
创建一个线程默认的状态是joinable, 如果一个线程结束运行但没有被join,则它的状态类似于进程中的Zombie Process,即还有一部分资源没有被回收(退出状态码),所以创建线程者应该调用pthread_join来等待线程运行结束,并可得到线程的退出代码,回收其资源(类似于wait,waitpid)但是调用pthread_join(pthread_id)后,如果该线程没有运行结转载 2014-07-17 16:30:38 · 1982 阅读 · 0 评论 -
fork、execl , waitpid实现父子进程管道间通讯
1、创建管道#include int pipe(int fd[2])2、管道的读写规则:管道两端可分别用描述字fd[0]以及fd[1]来描述,需要注意的是,管道的两端是固定了任务的。即一端只能用于读,由描述字fd[0]表示,称其为管道读端;另一端则只能用于写,由描述字fd[1]来表示,称其为管道写端。如果试图从管道写端读取数据,或者向管道读端原创 2014-05-20 10:03:31 · 2922 阅读 · 0 评论 -
获取文件和文件夹的方法
文件夹和文件搜索目前的两种方法和弊端(1)使用lstat函数加S_ISDIR来获取,但是如果是文件多的时候就会变的非常的慢(2)用opendir加readdir的方式来实现,从网上搜索到opendir里面的d_type不是每个操作系统都有提供,所以在移植性上有些差别。而且dt_type的使用在某些文件系统上可能会失败, 比如某些NFS实现, CD9660等。所以如果以后遇到获取到的d_ty原创 2014-03-26 14:38:15 · 620 阅读 · 0 评论