自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(33)
  • 收藏
  • 关注

原创 二维码的生成细节和原理

二维码又称QR Code,QR全称Quick Response,是一个近几年来移动设备上超流行的一种编码方式,它比传统的Bar Code条形码能存更多的信息,也能表示更多的数据类型:比如:字符,数字,日文,中文等等。这两天学习了一下二维码图片生成的相关细节,觉得这个玩意就是一个密码算法,在此写一这篇文章 ,揭露一下。供好学的人一同学习之。关于QR Code Specification,可参看这

2014-02-26 15:46:36 4153

原创 进度条

#include#include #include int main(){ #if 0 int bootdelay = 10; printf("Hit any key to stop autoboot: %2d ", bootdelay); while(1) { printf("\b\b\b%2d ", bootdelay); sleep(1); } return

2014-02-26 10:52:23 603

原创 “简简单单”的问题~~~~

1.实现一个函数,计算1到n的和,当然n是变量不能出现以下:乘除操作,位操作,if-else,for,while,switch,?:三目运算符,全局变量,模版,标准库函数。(做出来后检查下是否有违上面的红字!!!!!!!!!!!!)2.printf("%f\n",10/3);这会输出什么???3.000000??还是别的什么?

2014-02-24 13:49:05 606

原创 蛇形矩阵

1  3 6  10  152  5  9 144  8  137  1211输出n行蛇形矩阵。  以上为一种蛇形矩阵,还有一种蛇形矩阵:1 3  4 10  112  5  9 126  8  137  1415我也给出程序:结果:

2014-02-24 13:49:03 527

原创 一个简简单单的问题

#include int main(){    charstr1[] = "abc";    charstr2[] = "abc";    constchar str3[] = "abc";    constchar str4[] = "abc";    char*str5 = "abc";    char*str6 = "abc";   printf("%d\n"

2014-02-24 13:49:00 557

原创 每天一程序健康全中国之 母牛生小…

题目:设有一头小母牛,从出生第四年起每年生一头小母牛,按此规律,第N年时有几头母牛?分析:找到其中规律        1年的牛   2年的牛   3年的牛    4年+的牛第一年:   1          0          0           0第二年:  0         1         0           0第三年:  0         

2014-02-24 13:48:58 756

原创 苏嵌学习之进程通行二信号通信

信号是在软件层次上对中断机制的一种模拟,是一种异步通信方式信号可以直接进行用户空间进程(注册和注销[这个注销不是很清楚])和内核进程(内核产生)之间的交互,内核进程也可以利用它来通知用户空间进程发生了哪些系统事件。如果该进程当前并未处于执行态,则该信号就由内核保存起来,直到该进程恢复执行再传递给它;如果一个信号被进程设置为阻塞,则该信号的传递被延迟,直到其阻塞被取消时才被传递给进程 用户

2014-02-24 13:48:56 482

原创 苏嵌学习之进程通行一管道通信

常用的进程间通信方式:传统的进程间通信方式    无名管道(pipe)、有名管道(fifo)和信号(signal)System V IPC对象    共享内存(sharememory)、消息队列(message queue)和信号灯(semaphore)BSD   套接字(socket)对于本文,我将重点的讲讲对无名管道和有名管道的理解。无名管道:无名管道是半双工的,数

2014-02-24 13:48:54 641

原创 链接器都干了些什么?[经典收藏][…

大家都知道,从C/C++源程序到可执行文件要经历两个阶段:(1)编译器将源文件编译成汇编代码,然后由汇编器(assembler)翻译成机器指令(再加上其它相关信息)后输出到一个个目标文件(objectfile,VC的编译器编译出的目标文件默认的后缀名是.obj)中;(2)链接器(linker)将一个个的目标文件(或许还会有若干程序库)链接在一起生成一个完整的可执行文件。编译器编译源文件时会把源

2014-02-24 13:48:52 651

原创 苏嵌学习之const

首先明确const定义的是一个只读变量,而不是一个常量。然后就是看几个例子:7,8,11行:increment of read-only XXXXXXXX所以,const定义的变量,不能直接对其进程任何操作,但可以通过其他变量来对其进行操作(指针,引用等)!

2014-02-24 13:48:50 603

原创 苏嵌学习之初识指针

小小的解释一下:p是一个指针,里面放的是一个地址,而它本身也有一个地址,*p就是p里发的地址下面的值;pp其实和p差不多,只不过,pp这个指针指向的是一个指针,所以pp的内容是p的地址,*pp的内容是pp内容地址里的值,而**pp就是就是*pp里的地址里的内容;所以,会有上图中**pp = *p = a;*pp = p;pp = p的地址;

2014-02-24 13:48:47 525

原创 homework之线程之间的管道通信

题目大概说明:子父线程中各创建一个文件,先向父线程写入一个字符串,然后用管道将这一字符串从父线程copy到子线程中~~(换图,好看点)一开始ls,什么也没有,./a.out 后,出现了tdest和tsourse,cattsourse和tdest都是str的tabcdefg~~~~~~

2014-02-24 13:48:45 502

原创 homework之进程间的管道通行

题目大概说明:子父进程中各创建一个文件,先向父进程写入一个字符串,然后用管道将这一字符串从父进程copy到子进程!(换图,好看点~~~~~)一开始ls,什么也没有,./a.out 后,出现了dest和sourse,catsourse和dest都是str的abcdefg~~~~~~

2014-02-24 13:48:43 466

原创 苏嵌学习之线程thread

线程是什么?我的理解:线程就是拥有独立pc的函数! TID(线程ID) 线程的一些函数(头文件#include):1.create:函数原型   int pthread_create(pthread_t *thread,  constpthread_attr_t  *attr, void * (* routine)(void *),  void*arg)函数参数  thr

2014-02-24 13:48:41 601

原创 苏嵌学习之进程process

进程是什么???在我看来,进程就是当系统在执行某个程序时,分配和释放的各种资源的过程(是过程,所以当程序退出时,进程也就结束了)!进程和程序有什么区别呢???程序是静态的,只是占用了一段内存空间,没有其他任何意义;而进程是动态的,它是程序执行的过程。 ps -axj上图是在终端输入ps-axj得到的结果的最上端不按上图的顺序说,先说用最多的:PID:进程号(Process Id

2014-02-24 13:48:39 533

转载 阻塞式io和非阻塞式io(转载…

原文地址:阻塞式io和非阻塞式io(转载)作者:相忘于江湖POSIX定义中,同步IO操作:IO操作将导致请求进程阻塞,直到IO操作完成。异步IO操作:IO操作不导致请求进程阻塞UNP中总结的IO模型有5种之多阻塞IO,非阻塞IO,IO复用,信号驱动IO,异步IO,前四种都属于同步IO。阻塞IO不必说了非阻塞IO,IO请求时加上O_NONBLOCK一类的标志位,立刻返回,IO没有就绪

2014-02-24 13:48:37 697

转载 io阻塞与io非阻塞之二

原文地址:io阻塞与io非阻塞之二作者:相忘于江湖同步与异步IO、阻塞与非阻塞IO很多时候我们常常看到同步与异步,阻塞与非阻塞的出现。有的地方直接将同步与阻塞画上了等号。异步与非阻塞画上了等号。事实上这是不对的。同步不等于阻塞,而异步也不等于非阻塞。下面就来仔细的看看同步与异步、阻塞与非阻塞的概念差别,及他们的组合应用。  同步:所谓同步,就是在发出一个功能调用时,在没有得到结果之前,该调用

2014-02-24 13:48:35 447

原创 未初始化的局部变量 为什么随机值…

未初始化的局部变量 为什么随机值一样???为什么随机值一样" TITLE="未初始化的局部变量 为什么随机值一样" />为什么随机值一样" TITLE="未初始化的局部变量 为什么随机值一样" />我只想说,我没问题;而对于一直出一个随机值,我想不明白~~~~

2014-02-24 13:48:33 1223

原创 变量的存储类型 再记忆

内存中供用户使用的存储空间分为三部分:程序区、静态存储区、动态存储区。数据分别存放在静态存储区和动态存储区中。全局变量全部存放在静态存储区中,在程序开始执行时给全局变量分配存储区,程序执行完毕就释放。程序执行过程中它们占据固定的存储单元,而不是动态分配和释放。而在动态存储区中存放以下数据:1.函数形式参数;2.自动变量;3.函数调用时的现场保存和返回地址。数据在内存中的存储方法两类:静

2014-02-24 13:48:31 668

原创 数据类型 再记忆

整形:int 32位  4个字节(对于32位机) -2^31---2^31-1       int又分为short:16位 2个字节 -2^16---2^16-1                long:32位 4个字节 -2^31---2^31-1                long long 64位 6个字节 -2^63---2^63-1浮点型:单精度(float):32位

2014-02-24 13:48:29 570

原创 内核系统与应用程序的关系

在Linux系统中,内核为用户程序提供了两方面的支持。其一是系统调用接口,另一方面是通过开发环境库函数或内核库函数与内核进行信息交流。不过内核库函数仅供内核创建的任务0和任务1使用,它们最终还是去调用系统调用。 系统调用主要提供给系统软件编程或者用于库函数的实现。而一般用户开发的程序则是通过调用像libc等库函数来访问内核资源。这些库中的函数或资源通常被称为应用程序编程接口(API),其中定

2014-02-24 13:48:26 2048

原创 文件 I/O

文件I/O直接访问内核,而标准I/O则是通过API来间接地访问内核的~~~直接上图:I/O" TITLE="文件 I/O" />下面就是最好能记住的几个新的头文件:#include :基本系统数据类型 是Unix/Linux系统的基本系统数据类型的头文件,含有size_t,time_t,pid_t等类型。#include头文件定义了文件操作等所用到的相关宏#includ

2014-02-24 13:48:24 668

原创 请编写一个C函数,该函数将一个字符…

2014-02-24 13:48:22 704

原创 统计1~n有多少个9

2014-02-24 13:48:20 527

原创 shell脚本种类介绍

sh:是其他脚本的开发基础(UNIX默认的shell) bash:完美继承了sh的的优点,兼容sh(LINIX默认的shell) csh:为BSD UNIX开发,提供了命令补全和命令别名等,但csh使用类C的语法,所以csh和sh并不兼容~~ tcsh:与csh兼容~~是csh的增强版~~~ ksh:和sh完美兼容又有csh好用的特点及集合了sh和cah的优点~ 英文好的可以

2014-02-24 13:48:18 898

原创 自动生成makefile文件

自动生成makefile1 以helloworld.c为源文件root@parson-desktop:/home/parson/tmp/automk# lshellolinux.c2.使用Autoscan工具生成configure.ac文件root@parson-desktop:/home/parson/tmp/automk# autoscan程序“autoscan”尚未安装。 您可以

2014-02-24 13:48:16 649

原创 linux下 用GDB调试C语言段错误

http://blog.csdn.net/macky0668/article/details/3175401有很多没用过的工具~~~·

2014-02-24 13:48:14 744

原创 linux 下 GDB调试

命令解释示例file加载被调试的可执行程序文件。因为一般都在被调试程序所在目录下执行GDB,因而文本名不需要带路径。(gdb) filegdb-samplerRun的简写,运行被调试的程序。如果此前没有下过断点,则执行完整个程序;如果有断点,则程序暂停在第一个可用断点处。(gdb)rcContinue的简写,继续执行被调试程序,直至下一个断点或程序结束。

2014-02-24 13:48:12 524

原创 静态库和动态库

静态库和动态库的区别1. 静态函数库这类库的名字一般是libxxx.a;利用静态函数库编译成的文件比较大,因为整个函数库的所有数据都会被整合进目标代码中,他的优点就显而易见了,即编译后的执行程序不需要外部的函数库支持,因为所有使用的函数都已经被编译进去了。当然这也会成为他的缺点,因为如果静态函数库改变了,那么你的程序必须重新编译。2. 动态函数库这类库的名字一般是libxxx.so;相对

2014-02-24 13:48:09 498

原创 gcc 链接

手工来写链接参数总是很麻烦的,还好很多库开发包提供了生成链接参数的程序,名字一般叫xxxx-config,一般放在/usr/bin目录下,比如gtk1.2的链接参数生成程序是gtk-config,执行gtk-config --libs就能得到以下输出"-L/usr/lib -L/usr/X11R6/lib -lgtk -lgdk -rdynamic-lgmodule -lglib -l

2014-02-24 13:48:07 525

原创 关于typedef的用法总结

不管实在C还是C++代码中,typedef这个词都不少见,当然出现频率较高的还是在C代码中。typedef与#define有些相似,但更多的是不同,特别是在一些复杂的用法上,就完全不同了,看了网上一些C/C++的学习者的博客,其中有一篇关于typedef的总结还是很不错,由于总结的很好,我就不加修改的引用过来了,以下是引用的内容(红色部分是我自己写的内容)。用途一:定义一种类型的别名,而不

2014-02-24 13:45:26 443

原创 vim 去掉^M

有两种情况,会出现打开的文件都显示^M符号:1. vim被配置为fileformat=unix,而你打开的文件都是dos格式的。unix格式的换行符为0A(ascii码)也就是,dos格式的换行符为 0D 0A(也就是),其实就显示为^M。下面是详细讲解:DOS, Mac 和Unix格式的文件回想计算机的史前史,那时的打字机使用两个字符来开始一个新行。首先是一个字符命令使打印头

2014-02-24 13:23:00 645

原创 vim 对齐

只要在 /etc/vimrc中加上这两句就行了set autoindentset smartindent--------------------------------------------------------pip我说过vim很好很强大滴--------------------------------------------------------===

2014-02-24 13:20:41 1315

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除