linux program
文章平均质量分 64
风去沙来
这个作者很懒,什么都没留下…
展开
-
GNU Linux中的SO_RCVLOWAT和SO_SNDLOWAT说明
SO_RCVLOWAT SO_SNDLOWAT每个套接口都有一个接收低潮限度和一个发送低潮限度。接收低潮限度:对于TCP套接口而言,接收缓冲区中的数据必须达到规定数量,内核才通知进程“可读”。比如触发select或者epoll,返回“套接口可读”。发送低潮限度:对于TCP套接口而言,和接收低潮限度一个道理。 理解接收低潮限度:如果应用程序没有调用recv()去读取socke原创 2015-07-12 20:43:07 · 7004 阅读 · 2 评论 -
select、poll、epoll的区别
转自:http://www.cnblogs.com/bigwangdi/p/3182958.html在Linux Socket服务器短编程时,为了处理大量客户的连接请求,需要使用非阻塞I/O和复用,select、poll和epoll是Linux API提供的I/O复用方式,select:下面是select的函数接口:int select (int n, fd_set *转载 2014-04-03 00:13:00 · 974 阅读 · 0 评论 -
嵌入式中多平台开发时大端小端的问题及解决方法之一
大端小端的问题在不同平台间的问题比较严重,一个平台支持大端的,而另一端支持小端的,这样就存在大于一个字节的数据结构的内存存储形式不是一致的,若是要使用htonl htons ntohl ntohs 这四个函数的话,那么需要知道不同平台间的cpu是支持大端还是小端的,大端的为网络序,关于如何判断大端或小端的方法,可参照,有的时候在支持大端的设备上调用这4个函数的结果是一样的,这个其实原创 2014-03-10 17:40:48 · 2221 阅读 · 0 评论 -
使用openssl中的EVP通用加密算法接口的之--hash散列运算测试例子
#include #include #include #include #include #include #include #include #include #include #define EVP_MAX_MD_SIZE 64 #define MD5_RESULT_LEN 16#define DATA_LEN 8char msg[]原创 2014-01-22 17:23:18 · 1743 阅读 · 0 评论 -
使用openssl中的EVP通用加密算法接口的之--解密测试例子
/********************************************************************* * Author : Samson * Date : 01/22/2014 * Test platform: * 3.6.10-4.fc18.i686.PAE * GNU b原创 2014-01-22 16:56:14 · 7552 阅读 · 0 评论 -
使用openssl中的EVP通用加密算法接口之--加密测试例子
/********************************************************************* * Author : Samson * Date : 01/22/2014 * Test platform: * 3.6.10-4.fc18.i686.PAE * GNU b原创 2014-01-22 16:46:21 · 3103 阅读 · 0 评论 -
按某类型对齐的C代码实现
#define ALIGN_UP(addr, align) ((((nlm_uintptr_t) (addr)) + ((align) - 1)) & ~((align) - 1))test programing:#include #include int main(){ int i = 0, n = 0; printf("---原创 2013-11-01 16:29:42 · 1295 阅读 · 0 评论 -
静态库的制作与使用(包含测试例子)
/********************************************************************* * Author : Samson * Date : 06/30/2012 * Test platform: * GNU Linux version 2.6.29.4 * g原创 2012-07-01 04:26:52 · 1293 阅读 · 0 评论 -
互斥(mutext)和信号量(semaphore)的区别
转自: http://www.cppblog.com/martin/archive/2009/03/18/hello.html"互斥(mutext)和信号量(semaphore)之间有什么不同?"这样的问题简短而有力,但要回答却相当困难.即使有经验的实时操作系统(RTOS)用户在区别如何正确使用mutex和semaphore时也存在着困难.但这一点很不幸而且很危险,因为无任这两种转载 2012-07-11 02:51:54 · 2557 阅读 · 0 评论 -
嵌入式程序设计中的优化问题
转载自: http://www.eeworld.com.cn/mcu/2012/0331/article_8260_2.html代码优化 代码优化,就是采用汇编语言或更精简的程序代码来代替原有的代码,使编译后的程序运行效率更高。编译器可以自动完成程序段和代码块范围内的优化,但很难获取程序语义信息、算法流程和程序运行状态信息,因而需要编程人员进行手工优化。以下是一些常用的优转载 2012-07-03 22:51:57 · 887 阅读 · 0 评论 -
GNU/Linux中动态库的搜索路径的指定方法汇总
动态链接时、执行时搜索路径顺序:1.编译目标代码时使用-L指定的动态库搜索路径;2.环境变量LD_LIBRARY_PATH指定的动态库搜索路径;3.配置文件/etc/ld.so.conf中指定的动态库搜索路径;4.默认的动态库搜索路径/lib;5.默认的动态库搜索路径/usr/lib。以上的3~5步中,不再需要手动地指定动态库搜索路径了,有一个可以进行配置更新默认的搜索路径的命令:ldconfig原创 2014-04-03 01:17:06 · 5775 阅读 · 0 评论 -
Mint Linux自定义快捷键不支持中文路径的问题的解决
Mint Linux自定义快捷键不支持中文路径的问题的解决原创 2014-04-28 20:49:34 · 1892 阅读 · 0 评论 -
gtk+3.0的环境配置及基于gtk+3.0的python简单例子
很多时候在Gnu Linux环境下会同时有gtk 2.0与gtk 3.0的存在,因为有的程序是基于2.0的,而有一些是基于3.0的,所以在进行基于gtk的编程时,要先进行版本的切换。配置gtk的环境为gtk+-3.0, 而相应的2.0为s/gtk+-3.0/gtk+-2.0/g:ufo@ufo:~/test$ pkg-config --cflags gtk+-3.0-pthre原创 2014-06-25 18:32:09 · 10192 阅读 · 0 评论 -
C语言如何清空一个文件的例子
如何使用C语言使一个文件的内容直接就清空了呢?答案就在如下的程序代码中:#include #include #include #include #include #define PATHNAME "./test"int main(){ int ret = open(PATHNAME, O_WRONLY | O_TRUNC);原创 2015-02-12 17:14:04 · 13393 阅读 · 0 评论 -
Makefile.am、Makefile.in和Makefile的关系
它们这三个东东是怎么来的呢?Makefile.am: 是一些编译的选项及要进行编译的文件项等,例如:bin_PROGRAMS=testlib_LIBRARIES = libhand.alibhand_a_SOURCES = hand.cMakefile.in: 在automake手册中是这样说:while automake is in charge of原创 2015-01-30 22:39:28 · 11145 阅读 · 0 评论 -
GNU Linux 64位系统中fatal error: stdio.h: 没有那个文件或目录的错误的解决方法
在64位系统中,编写一个C语言程序后,使用gcc进行编译时,出现了如下的错误:test.c:1:19: fatal error: stdio.h: 没有那个文件或目录#include 针对以上的情况,对于在32环境下一般不会出现这个问题,因为已经把libc的头文件包括在系统中了,那么针对这样的情况,主要检查是否安装了完备的开发环境:build-essential pack原创 2014-12-07 13:46:31 · 55661 阅读 · 6 评论 -
一个简单的执行程序的GNU automake自动生成Makefile的方法及案例
全GNU的世界里,存在Automake这样的工具进行自动生成Makefile文件,automake是由Perl语言编写的,必须与GNU autoconf一并使用,具体的生成过程请参看GNU automake的wikipedia中的右下角的图,地址如下:http://en.wikipedia.org/wiki/Automake,由此图可看到使用自动生成Makefile的工具使用的流程,步骤主要如下:原创 2015-01-27 17:12:04 · 13445 阅读 · 4 评论 -
GNU Linux syslog守护进程简介及syslog日志写入例子
rsyslog进程syslog是记录系统中的日志记录的一个工具,可以支持本地的、也可以支持远程的日志的写入。在LinuxMint环境中,基于upstart的机制的后台守护程序是放在/etc/init/目录下的,可使用下如下的命令进行查看具体的启动脚本:ufo@ufo:/var/log$ less /etc/init/rsyslog.conf查看当前rsyslogd是否已经启动:原创 2014-12-16 19:09:19 · 3560 阅读 · 1 评论 -
X11简介及Xlib参考手册地址
一,GNU Linux本身没有图形界面,linux现在的图形界面的实现只是linux下的应用程序实现的.图形界面并不是GNU Linux的一部分,GNU Linux只是一个基于命令行的操作系统,GNU Linux和Xfree的关系就相当于当年的DOS和WINDOWS3.0一样,windows3.0不是独立的操作系统,它只是DOS的扩充,是DOS下的应用程序级别的系统,不是独立的操作系统,同原创 2014-11-25 19:32:52 · 8393 阅读 · 0 评论 -
Python_cmd的各种实现方法及优劣(subprocess.Popen, os.system和commands.getstatusoutput)
目前我使用到的python中执行cmd的方式有三种:1. 使用os.system("cmd")这是最简单的一种方法,特点是执行的时候程序会打出cmd在linux上执行的信息。使用前需要import os。[python] view plaincopyprint?os.system("ls") 2. 使用Popen模块产生新的process转载 2014-07-08 15:50:58 · 19376 阅读 · 0 评论 -
在Ubuntu的系统中如何将应用程序添加到开始菜单中
若我们有一个已经写好的程序,已经安装到/usr/bin下,名称为systemtool,且只能够从命令行进行启动,那么为了操作方便,要添加到开始菜单中,那么如何添加呢?先来了解一下Ubuntu系列的开始菜单中的项是在何处定义的,位于开始菜单中的项在目录 /usr/share/applications 下都存在有*.desktop配置文件,那么我们可以拷贝一个已经存在的*.desktop文件进行修原创 2014-07-08 16:09:53 · 6322 阅读 · 0 评论 -
内存拷贝程序的优化--利用系统的特性
/********************************************************************* * Author : Samson * Date : 07/04/2012 * Test platform: * GNU Linux version 2.6.29.4 * g原创 2012-07-04 05:05:58 · 1966 阅读 · 2 评论 -
僵死进程和孤儿进程
from: http://blog.chinaunix.net/uid-7897183-id-75583.html在Unix系统编程中,常常会碰到两个概念:僵死进程和孤儿进程。话说我以前曾经把这两个概念弄混淆过。什么是僵死进程?我们知道,在Unix进程模型中,进程是按照父进程产生子进程,子进程产生子子进程这样的方式创建出完成各项相互协作功能的进程的。当一个进程完成它的工作终止之转载 2012-03-11 15:03:40 · 979 阅读 · 0 评论 -
关于一些代码中定义为空的宏的作用
/********************************************************************* * Author : Samson * Date : 05/03/2012 * Test platform: * GNU Linux version 2.6.29.4 * g原创 2012-05-03 17:17:18 · 7993 阅读 · 0 评论 -
linux offsetof在用户态C语言实现及示例
若需转载,请注明出处linux系统提供的offsetof方法是得到一个结构体中的一个成员字段的此结构体中的偏移字节,现在用户态进行实现。在用户态进行实现的例子:得到一个结构体中的子结构体中的某一个字段的值 假设前题:只知道大结构的类型、子结构体的名字、子结体的某一字段的名字原创 2011-11-05 16:24:12 · 2044 阅读 · 0 评论 -
怎么查看动态分配内存空间的大小(GNU linux下C语言版)
若需转载 请注明出处RT,经过几番纠结,终于找到了GNU like UNIX平台下得到malloc后的大小的方法,microsoft有_msize可完成类似功能,现将测试代码甩上来,以咨参考/******************************************************************** * Function: Tes原创 2011-11-23 23:02:55 · 3985 阅读 · 0 评论 -
iptables看书笔记
iptables netfilter原创 2011-04-28 22:15:00 · 1058 阅读 · 0 评论 -
查看linux中查看程序使用了多少栈空间及使用了多少堆空间
先占到原创 2011-02-15 00:32:00 · 8846 阅读 · 3 评论 -
linux中C程序运行时怪异的段错误--linux中因栈空间不足而出现的运行时段错误
linux中C程序段错误 怪异 段错误 linux中因栈空间不足 运行时段错误原创 2011-02-15 00:26:00 · 3303 阅读 · 1 评论 -
关于posix sem的一些常见的问题
linux中支持很多标准,关于信号量(semaphore )有二种标准给予支持,有posix sem和system V sem ,你要问这是什么东东,那你就去自己baidu一下了,要多活动一下自己的筋骨晓得不 ^_^ 首先,我们来说说这二种sem的区别:posix原创 2008-10-22 01:08:00 · 1342 阅读 · 0 评论 -
perror函数不能乱用的
今天在网上查了一下 perror函数是哪一个库里的函数 ,搜索到一个在内核编码中使用C函数库下的perror函数而出现了错误,才晓得原来在内核代码中不能调用"stdio.h"中的那个perror函数.perror使用了user space的空间,在内核直接访问用户空间不做保护处理或者其它处理是会有问题的 先笔记到先^_^原创 2008-10-21 23:59:00 · 1625 阅读 · 0 评论 -
一个简单的GNU信号测试程序
在GNU linux下,查看系统信号可使用命令:trap -l 或 kill -l 另外,要查看当前的信号产生的按键的话,可使用命令stty -a查看,废话少说,直接上代码。/********************************************************************* * Function: Test simple signal *原创 2011-12-01 12:50:25 · 1194 阅读 · 0 评论 -
一个简单的GNU getopt函数的测试例子
/********************************************************************* * Function: Test getopt * Author : Samson * Date : 11/30/2011 * Test platform: * GNU Linux version 2.原创 2011-12-03 22:37:18 · 691 阅读 · 0 评论 -
一个简单的GNU assert用法测试程序
/********************************************************************* * Function: Test assert * Author : Samson * Date : 12/12/2011 * Test platform: * GNU Linux version 2原创 2011-12-12 22:21:26 · 1288 阅读 · 0 评论 -
关于core文件
/********************************************************************* * Author : Samson * Date : 04/18/2012 * Test platform: * GNU Linux version 2.6.29.4 * g原创 2012-04-17 18:42:14 · 5826 阅读 · 0 评论 -
不可重入函数的产生和预防
/********************************************************************* * Author : Samson * Date : 04/25/2012 * Test platform: * GNU Linux version 2.6.29.4 * g原创 2012-04-25 05:56:01 · 1380 阅读 · 0 评论 -
posix实时信号
/********************************************************************* * Author : Samson * Date : 04/25/2012 * Test platform: * GNU Linux version 2.6.29.4 * g原创 2012-04-25 05:34:28 · 999 阅读 · 0 评论 -
关于两次fork
两次fork()的作用首先,要了解什么叫僵尸进程,什么叫孤儿进程,以及服务器进程运行所需要的一些条件。两次fork()就是为了解决这些相关的问题而出现的一种编程方法。孤儿进程 孤儿进程是指父进程在子进程结束之前死亡(return 或exit)。如下图1所示: 在一定时间内,当系统发现孤儿进程时,init进程就收养孤儿进程,成为它的父亲,child进程exit原创 2012-03-11 16:08:31 · 1213 阅读 · 0 评论 -
线程相对于进程的优势
fork是昂贵的。fork要把父进程的内存映像拷贝到子进程,并在子进程中复制所有描述字,如此等等。当今的实现使用称为写时拷贝(copy on write)的技术,用以避免在子进程切实需要自己的拷贝之前把父进程的数据空间拷贝到子进程。然而,即便有这样的优化措施,fork仍然是昂贵的。fork返回之后父子进程之间信息的传递需要进程间通信(IPC)机制。调用fork之前父进程向尚未存在的子进程传原创 2012-03-27 16:07:03 · 2252 阅读 · 0 评论 -
about wait and waipid function of GNU
wait与waitpid的区别:pid_t wait(int *statloc);pid_t waitpid(pid_t pid, int *statloc, int options);相同的:wait和waitpid都返回两个值:函数返回值是已终止子进程的进程ID号,子进程的终止状态(一个整数)则通过statloc指针返回。如果调用wait的进程没有已终止的子进程,不原创 2012-02-22 17:58:43 · 1080 阅读 · 0 评论