![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C语言学习笔记
Shen_JC
牛奶和面包都会有的。。
展开
-
printf格式控制符的完整格式
<br />printf的格式控制的完整格式:<br /> % - 0 m.n l或h 格式字符<br /> 下面对组成格式说明的各项加以说明:<br /> ①%: 表示格式说明的起始符号,不可缺少。<br /> ②-:有-表示左对齐输出,如省略表示右对齐输出。<br /> ③0:有0表示指定空位填0,如省略表示指定空位 不填。<br /> ④m.n:m指域宽,即对应的输出项在输出设备上所占的字符数。N指精度。用于说明输出的实型数的小数位数。为指定n时,隐含的精度为 n=6位。<转载 2010-07-19 19:51:00 · 799 阅读 · 0 评论 -
dlopen dlsym dlclose dlerror
LINUX下动态链接库的使用 2.1 重要的dlfcn.h头文件 LINUX下使用动态链接库,源程序需要包含dlfcn.h头文件,此文件定义了调用动态链接库的函数的原型。下面详细说明一下这些函数。 2.1.1 dlerror 原型为: const char *dlerror(void); 当动态链接库操作函数执行失败时,dlerror可以返回出错信息,返回值为NU转载 2011-12-20 21:40:13 · 973 阅读 · 0 评论 -
MPlayer源码分析
这几天在学习mplayer以下是在网上搜集到的关于mplayer的文章,主要是源码分析这块。首先感谢这些文章的作者,有些没有标明原文出处,实在表示抱歉。 从Mplayer.c的main开始 //处理参数 mconfig = m_config_new(); m_config_reg转载 2011-07-19 22:28:20 · 1364 阅读 · 1 评论 -
typedef函数指针的用法
代码简化, 促进跨平台开发的目的. typedef 行为有点像 #define 宏,用其实际类型替代同义字。 不同点:typedef 在编译时被解释,因此让编译器来应付超越预处理器能力的文本替换。用法一:typedef int (*MYFUN)(int, int); 这种用法一般转载 2011-07-19 17:07:19 · 712 阅读 · 0 评论 -
getopt_long及其使用
<br /><br /> Linux系统下,需要大量的命令行选项,如果自己手动解析他们的话实在是有违软件复用的思想,不过还好,GNU C library留给我们一个解析命令行的接口(X/Open规范),好好使用它可以使你的程序改观不少。<br />使用getopt_long()需要引入头文件<br />#include <getopt.h><br /> 现在我们使用一个例子来说明它的使用。<br />一个应用程序需要如下的短选项和长选项。<br /><br /> 短选项转载 2011-05-03 14:06:00 · 889 阅读 · 0 评论 -
嵌入式c编程技巧_编程风格
<br />目录:一.编程修养二.编程技巧三.编程风格 /*******************************************************一.编程修养 ----C语言程序写作上的三十二个“修养”*******************************************************/ ———————————————————————— 01、版权和版本 02、缩进、空格、换行、空行、对齐 03、程序注释转载 2011-04-25 22:33:00 · 837 阅读 · 0 评论 -
log宏格式
<br /><br />android中带有自定义格式的log宏:<br /> <br />#ifdef ENABLE_DEBUG<br />#define DBG(fmt, arg...) printf("DEBUG: %s: " fmt "/n" , __FUNCTION__ , ## arg)<br />#else<br />#define DBG(fmt, arg...)<br />#endif原创 2011-03-10 09:34:00 · 963 阅读 · 0 评论 -
Source Insight技巧收集
<br />1、背景色选择<br /> 要改变背景色Options->preference->windows background->color设置背景色<br />2、解决字符等宽对齐问题。<br /> SIS默认字体是VERDANA,很漂亮。这网页上应该也是用的VERDANA字体。但由于美观的缘故,VERDANA字体是不等宽的。比如下面两行<br /> llllllllll<br /> MMMMMMMMMM<br /> 同样10个字符,长度差多了.用VERDANA来看程序,转载 2011-02-27 16:12:00 · 826 阅读 · 0 评论 -
c语言静态变量和静态函数
static C语言<br /> C语言程序可以看成由一系列外部对象构成,这些外部对象可能是变量或函数。而内部变量是指定义在函数内部的函数参数及变量。外部变量定义在函数之外,因此可以在许多函数中使用。由于C语言不允许在一个函数中定义其它函数,因此函数本身只能是“外部的”。<br /> 由于C语言代码是以文件为单位来组织的,在一个源程序所有源文件中,一个外部变量或函数只能在某个文件中定义一次,而其它文件可以通过extern声明来访问它(定义外部变量或函数的源文件中也可以包含对该转载 2011-01-11 17:55:00 · 784 阅读 · 0 评论 -
Beginning Linux Programming chapter 13
Inter-Process Communication: Pipes进程Pipes可能最简单的方式在两个程序中传递数据是用popen和pclose函数。 #include FILE *popen(const char *command, const char *open_mode); int pclose(FILE *stream_to_close);popen 这个popen函数允许一个程序去调用另一个程序作为一个新进程去传递一个原创 2010-11-09 18:59:00 · 693 阅读 · 0 评论 -
Beginning Linux Programming chapter 7
Data Management 管理内存 简单的内存分配 使用malloc方法进行内存分配。 #include void *malloc (size_t size); //size指的是多少字节,由于返回类型是oid*,所以它可以返回各种类型的指针,指向的是内存的第一快地址。 释放内存 #include void free(void *ptr_to memory); //free只能用于由alloc,原创 2010-11-03 18:04:00 · 712 阅读 · 0 评论 -
Beginning Linux Programming chapter 11
开始一个新进程 你可以启动一个程序从另一个程序的内部,所以创建一个进程可以使用system库函数。 #include int system (const char *string); 这个system方法启动一个命令并将string传递给它,然后等待它结束。这个命令的执行有点像 “$ sh -c string”被传递给shell。如果shell不能执行这个命令system函数返回127,如果错误则返回 -1,否则system函数返回命令结束代码。原创 2010-11-04 22:36:00 · 813 阅读 · 0 评论 -
Beginning Linux Programming chapter 4
程序引数 当操作系统启动一个新的程序时,参数argc和argv[]都会传递给程序。这些参数通常都是由另一个程序提供,大多数情况下都是有shell请求系统开始新的程序,shell获取命名行,然后分割成独立的词组保存在argv数组中。argc是记录参数个数的,包括程序名。程序名保存在argv[0]中。 环境变量原创 2010-11-02 00:21:00 · 690 阅读 · 0 评论 -
gcc使用静态库和动态库
我们通常把一些公用函数制作成函数库,供其它程序使用。函数库分为静态库和动态库两 种。静态库在程序编译时会被连接到目标代码中,程序运行时将不再需要该静态库。动态 库在程序编译时并不会被连接到目标代码中,而是在程序运行是才被载入,因此在程序运 行时还需要动态库存在。本文主要通过举例来说明在Linux中如何创建静态库和动态库,以 及使用它们。在创建函数库前,我们先来准备举例用的源程序,并将函数库的源程序编译成.o文件。第1步 :编辑得到举例的程序--hello.h、hello.c和main.c;hell转载 2010-12-22 18:16:00 · 9886 阅读 · 1 评论 -
Beginning Linux Programming chapter 3
Linux的文件系统目录文件 目录文件的属性保存在inode信息节点中,inode是一个特殊的数据块,同样保存着文件的大小和文件的保存位置。“/”是最高层的目录包含着所有的文件,在根目录下通常包含着“/bin”存放系统程序(binary),“/etc”存放系统的配置文件,“/lib”存在系统库文件,“/dev”存在这系统的设备文件。文件和设备 即使是硬件设备也都是映射成文件系统的,你可以通过mount将设备挂载到其他文件目录下来访问设备。 /dev/console 这个设备提供系统的控制台原创 2010-10-30 13:22:00 · 900 阅读 · 0 评论 -
Linux下的多线程编程
<br />1 引言<br /> 线程(thread)技术早在60年代就被提出,但真正应用多线程到操作系统中去,是在80年代中期,solaris是这方面的佼佼者。传统的Unix也支持线程的概念,但是在一个进程(process)中只允许有一个线程,这样多线程就意味着多进程。现在,多线程技术已经被许多操作系统所支持,包括Windows/NT,当然,也包括Linux。<br /> 为什么有了进程的概念后,还要再引入线程呢?使用多线程到底有哪些好处?什么的系统应该选用多线程?我们首先必须回答这些问题。<br /转载 2010-10-24 20:41:00 · 599 阅读 · 0 评论 -
Linux下Socket编程
相关的参考文章:http://www.cnblogs.com/skynet/archive/2010/12/12/1903949.html http://www.cnblogs.com/ylqmf/archive/2012/02/13/2349803.html 什么是Socket Socket接口是TCP/IP网络原创 2010-10-26 22:29:00 · 601 阅读 · 0 评论