文章分类 - linux develop
摘要:实战Makefile.amMakefile.am是一种比Makefile更高层次的规则。只需指定要生成什么目标,它由什么源文件生成,要安装到什么目录等构成。表一列出了可执行文件、静态库、头文件和数据文件,四种书写Makefile.am文件个一般格式。表 1Makefile.am一般格式 对于可执行文件和静态库类型,如果只想编译,不想安装到系统中,可以用noinst_PROGRAMS代替bin_PROGRAMS,noinst_LIBRARIES代替lib_LIBRARIES。Makefile.am还提供了一些全局变量供所有的目标体使用:表 2 Makefile.am中可用的全局变量在Makefi
阅读全文
摘要:[root@opentv st239_glibc_ct]# find . -type f -exec grep -n -H O_BUILD_CFLAGS '{}' \;./debug_all/build/ekioh_sdk/build/Makefile:69:O_BUILD_CXXFLAGS = $(subst -Wmissing-prototypes,,$(O_BUILD_CFLAGS))
阅读全文
摘要:http://zhwen.org/?p=articles/automake过程记录:1. autoscan2. 修改configure.scan,重命名为configure.in,编辑Makefile.am3. 运行aclocal4. autoconf5. automake --add-missing6. ./configure && make && make install了。制作目录结构及文件:helight@helight:myshell$ lssrchelight@helight:myshell$ ls src/myshell.chelight@heli
阅读全文
摘要:为什么在c程序中经常见到如下的enum:typedef enum{ A=1, B=2, C=4, D=8, E=16, ... N=2的(n-1)次方}_enum好处, 当需要用一个值来判断是否包含几个enum值时,可以:X = A | B | C |...if(X & A){ x 包含 A;}
阅读全文
摘要:1.出了什么问题?单元测试的目标是一次只验证一个方法,小步的前进,细粒度的测试,但是假如某个方法依赖于其他一些难以操控的东东,比如说网络连接,数据库连接,或者是Servlet容器,那么我们该怎么办呢?要是你的测试依赖于系统的其他部分,甚至是系统的多个其他部分呢?在这种情况下,倘 若不小心,你最终可能会发现自己几乎初始化了系统的每个组件,而这只是为了给一个测试创造足够的运行环境让它们可以运行起来。忙乎了大半天,看上去我们好 像有点违背了测试的初衷了。这样不仅仅消耗时间,还给测试过程引入了大量的耦合因素,比如说,可能有人兴致冲冲地改变了一个接口或者数据库的一张表,突 然,你那卑微的单元测试的神秘的
阅读全文
摘要:1. yum install libcurl libcurl: /usr/lib/libcurl.so.x.x.x header files: /usr/include/curl2. gcc -o test_http -g -I /usr/include/curl -lcurl test_http_request_by_libcurl.ctest_http_request_by_libcurl.c#include <stdio.h>#include <stdlib.h>#include <stdarg.h>#include <unistd.h>#
阅读全文
摘要:http://curl.haxx.se/libcurl/c/example.htmlhttp://www.ebi.ac.uk/Tools/webservices/tutorials/06_programming/c_cpp/rest/libcurlhttp://cn.cocos2d-x.org/bbs/forum.php?mod=viewthread&tid=583http://baike.baidu.com/view/1806203.htmhttp://stackoverflow.com/questions/2376824/libcurl-http-request-to-save-r
阅读全文
摘要:curl是Linux下一个非常著名的下载库,通过这个库,可以很简单的实现文件的下载等操作。看一个简单的例子:#include <curl/curl.h>#include <stdio.h>#include <string.h>CURL *curl;CURLcode res;size_t write_data(void *ptr, size_t size, size_t nmemb, void *stream){if (strlen((char *)stream) + strlen((char *)ptr) > 999999) return 0;strc
阅读全文
摘要:LibCurl编程 一:LibCurl编程流程1.调用curl_global_init()初始化libcurl2.调用 curl_easy_init()函数得到 easy interface型指针3.调用curl_easy_setopt设置传输选项4.根据curl_easy_setopt设置的传输选项,实现回调函数以完成用户特定任务5.调用curl_easy_perform()函数完成传输任务6.调用curl_easy_cleanup()释放内存二:重要函数1、CURLcode curl_global_init(long flags);//初始化libcurl描述:这个函数只能用一次。(其实在
阅读全文
摘要:1. error: invalid application of 'sizeof' to incomplete type 'struct TestSuite[]'2. check.c test framework3. c数组初始化4. Default values in a C Struct5. used struct type value where scalar is required6. c动态创建数组7. linux c time functions8.
阅读全文
摘要:1. struct can't have default value
阅读全文
摘要:头文件$et;F(GeC0Linuxeden博客家园L6ygm8A7t~begin=====================================================} Z){*b^I;euL!Q0ila VN%b f0//./myinc/all.hLinuxeden博客家园2ta-j)gJp.yg+hZ+s.y4Jq w0#ifndef __ALL_H__Linuxeden博客家园NC*fG7[(`0qc#define __ALL_H__3_%R1a$h(QX+l5xF06v}e1eEyz,^){q `0
阅读全文
摘要:代码定位:__FILE__, __FUNCTION__, __LINE__Kz ybc'q6N}0Linuxeden博客家园{tS~\]a这是三个非常有用的全局变量,当程序需要输出一些内容,而又想知道输出的内容是在哪里输出的时候,这几个全局变量就派上用场了。Linuxeden博客家园6xUf5V'}2}b\__FILE__,__FUNCTION__, __LINE__ 从名字可以直接看出来了,对应的:代码文件名, 函数名, 行号。示例代码:o Y0K]%u0-------------------------------------------
阅读全文
摘要:g_ptr_array_foreach ()void g_ptr_array_foreach (GPtrArray *array, GFunc func, gpointer user_data);Calls a function for each element of a GPtrArray. array:a G...
阅读全文
摘要:一.前言1.编译器优化介绍:由 于内存访问速度远不及CPU处理速度,为提高机器整体性能,在硬件上引入硬件高速缓存Cache,加速对内存的访问。另外在现代CPU中指令的执行并不一 定严格按照顺序执行,没有相关性的指令可以乱序执行,以充分利用CPU的指令流水线,提高执行速度。以上是硬件级别的优化。再看软件一级的优化:一种是在 编写代码时由程序员优化,另一种是由编译器进行优化。编译器优化常用的方法有:将内存变量缓存到寄存器;调整指令顺序充分利用CPU指 令流水线,常见的是重新排序读写指令。对常规内存进行优化的时候,这些优化是透明的,而且效率很好。由编译器优化或者硬件重新排序引起的问题的解决办法是 在
阅读全文
摘要:1. declarationchar * const * (*next)();char* (*c[10]) (int ** p);
阅读全文
摘要:warning: "/*" within comment 举例: /************************************************/ /* /* save snmp entry data /* add by Tina Lee 2003/7/11 /*************************************************/ 说明:意思是说/* */ 中间又包含了/* 修改:改成这样就好了 /*****************************...
阅读全文
摘要:GNU C的一大特色(却不被初学者所知)就是__attribute__机制。__attribute__可以设置函数属性(Function Attribute)、变量属性(Variable Attribute)和类型属性(Type Attribute)。__attribute__书写特征是:__attribute__前后都有两个下划线,并切后面会紧跟一对原括弧,括弧里面是相应的__attribute__参数。__attribute__语法格式为:__attribute__ ((attribute-list))其位置约束为:放于声明的尾部“;”之前。函数属性(Function Attribute)
阅读全文
摘要:Weak Alias 是 gcc 扩展里的东西,实际上是函数的属性。这个东西在库的实现里面可能会经常用到,比如 glibc 里面就用了不少。抄录一段 gcc 手册里面的话解释下函数属性是干啥的,In GNU C, you declare certain things about functions called in your program which help the compiler optimize function calls and check your code more carefully.先上代码,看看 weak alias 怎么写。第一个文件 dummy.c 内容,#inc
阅读全文
摘要:源代码中存在汉语时的字符,如“”、,等,将其改过来即可
阅读全文