- 博客(30)
- 收藏
- 关注
原创 文件与文件的操作
读文件file1.txt的内容(例如):123456输出到file2.txt:563412实例代码:#include #include int main(void){ int MAX = 10; int *a = (int *)malloc(MAX * sizeof(int)); int *b; FI
2016-11-29 19:04:49 733
原创 工程管理
在实际的开发过程中,仅仅通过使用gcc命令对程序进行编译是非常低效的。原因主要有以下两点。1)程序往往是由多个源文件组成的,源文件的个数越多,那么gcc的命令行就会越长。此外,各种编译规则也会加大gcc命令行的复杂度。所以在开发调试程序的过程中,通过输入gcc命令行来编译程序是很麻烦的。2)在程序的整个开发过程中,调试的工作量占到了整体工作量的70%以上。在调试程序的过程中,每次调试一般只
2016-11-28 22:35:38 391
原创 GCC原理
在Linux平台上,最流行的编译系统是GCC(GNU Compile Collection)。GCC也是GNU发布的最著名的软件之一。GCC的功能非常强大,主要体现在两方面。 1) GCC可以为x86、ARM、MIPS等不同体系结构的硬件平台编译程序。 2) GCC可以编译C、C++、Pascal、Java等数十种高级语言。GCC的这两项特性对嵌入式应用开发及其重要。此外,
2016-11-27 09:11:15 799
原创 写一个日历函数,输出下一秒
编写一个函数,要求输入年月日时分秒,输出该年月日时分秒的下一秒。如输入2004年12月31日23时59分59秒,则输出2005年1月1日0时0分0秒
2016-11-26 20:53:38 450
原创 你不甘堕落、却又不思进取
1 记得当年宿舍里几个姑娘立志考研,约定好早上六点一起去图书馆占座,李莹的动作总比我们慢十分钟,我们都准备要出门了,她才舍得从床上爬起来穿衣洗漱。每天早上她自己订的闹钟都会重复播放无数遍,我们几个也会轮番喊她的名字,试图把她喊醒。可她就是无动于衷,上一秒嘴里吆喝着“又起晚了”,下一秒迅速回到梦中。 有些时候她还会埋怨我们不把她叫醒,或者会责怪我们几个拉帮结派,让她自己
2016-11-25 20:14:07 748
原创 循环删除数组的数
有一个数组a[1000]存放0--1000;要求每隔二个数删掉一个数,到末尾时循环至开头继续进行,求最后一个被删掉的数的原始下标位置。
2016-11-19 22:40:15 619
原创 求组合数
求n个数(1....n)中k个数的组合.... 如:combination(5,3) 要求输出:543,542,541,532,531,521,432,431,421,321,
2016-11-18 20:42:35 389
原创 实现常用字符串函数的功能
在现在的Linux版本下,支持许多的API函数,平时我们用得是挺舒服的,但是我们不光要用API函数,更重要的是,我们要知道这些API函数是怎样工作,执行的。我就用字符串的几个重要的函数来举例
2016-11-14 22:23:23 418
原创 去除头帧和尾帧的字符串
昨天无聊的时候写了一个带头帧和尾帧的字符串,然后输出时,去除头帧和尾帧,我想这不是分分钟的事哦,但是粗心的我忘记了限定的条件,所以写出来铭记自己,时刻须谨慎!一:头帧和尾帧的长度限定,即规定的头尾帧之前和后面都没有字符实例代码:#include #include #include #define MAX_SIZE 1024void getstr(char str[], int
2016-11-13 17:01:41 3613
原创 关于我们写的第一个hello world 的由来
Hello World是一个最著名的程序。对每一位程序员来说,这个程序几乎是每一门编程语言中的第一个示例程序。实际上,这个程序的功能只是告知计算机显示Hello World这句话。传统意义上,程序员一般用这个程序测试一种新的系统或编程语言。对程序员来说,看到这两个单词显示在电脑屏幕上,往往表示他们的代码已经能够编译、装载以及正常运行了,这个输出结果就是为了证明这一点。这个测试程序在一定程度上具
2016-11-12 20:20:57 444
原创 SQLITE3操作函数
数据库的打开:函数原型: int sqlite3_open(const char* fileName, sqlite3** ppDB);函数功能:打开一个数据库;若该数据库文件不存在,则自动创建。打开或者创建数据库的命令会被缓存,直到这个数据库真正被调用的时候才会被执行。输入参数:fileName,待打开的数据库文件名称,包括路径,以’\0’结尾; 特别说明:SQLite 支持内存
2016-11-11 21:53:18 1457
转载 socket服务器并发处理
我们知道,服务器通常是要同时服务多个客户端的,如果我们运行上一篇实现的server和client之后,再开一个终端运行client试试,新的client就不能能得到服务了。因为服务器之支持一个连接。网络服务器通常用fork来同时服务多个客户端,父进程专门负责监听端口,每次accept一个新的客户端连接就fork出一个子进程专门服务这个客户端。但是子进程退出时会产生僵尸进程,父进程要注意处理SI
2016-11-10 22:25:27 6362 1
原创 Linux之—网络通信(TCP)
TCP的上一层是应用层,TCP向应用层提供可靠的面向对象的数据流传输服务,TCP数据传输实现了从一个应用程序到另一个应用程序的数据传递。它能提供高可靠性通信(即数据无误、数据无丢失、数据无失序、数据无重复到达的通信。),应用程序通过向TCP层提交数据接发送/收端的地址和端口号而实现应用层的数据通信。通过IP的源/目的可以惟一地区分网络中两个设备的连接,通过socket的源/目的可以惟一地区分网
2016-11-06 21:16:44 621
转载 socket编程
“一切皆Socket!”话虽些许夸张,但是事实也是,现在的网络编程几乎都是用的socket。——有感于实际编程和开源项目研究。我们深谙信息交流的价值,那网络中进程之间如何通信,如我们每天打开浏览器浏览网页时,浏览器的进程怎么与web服务器通信的?当你用QQ聊天时,QQ进程怎么与服务器或你好友所在的QQ进程通信?这些都得靠socket?那什么是socket?socket的类型有哪些?还有
2016-11-05 23:22:59 341
原创 SQLite简介
SQLite 是一个开源的嵌入式关系数据库,它在2000年由D. Richard Hipp发布。SQLite可移植性好,很容易使用,很小,高效而且可靠。SQLite嵌入到使用它的应用程序中,它们共用相同的进程空间,而不是单独的一个进程。从外部 看,它并不像一个RDBMS,但在进程内部,它却是完整的,自包含的数据库引擎。 SQLite是一个内嵌式的数据库。 数据
2016-11-04 20:14:24 539
原创 数据库的简要认知
数据库(DataBase,简记为DB)就是一个有结构的、集成的、可共享的统一管理的数据集合。它不仅包括数据本身,而且包括相关数据之间的联系。数据库技术主要研究如何存储、使用和管理数据; 所谓有结构的,指的是数据是按一定的模型组织起来的。数据模型可用数据结构来描述。数据模型决定数据的组织方式、操作方法。理解数据库的前提是理解数据模型。现在的数据库多数是以关系模型来组织数据的。
2016-11-03 21:55:23 693
原创 Linux之——守护进程
Linux系统启动时会启动很多系统服务进程,比如inetd,这些系统服务进程没有控制终端,不能直接和用户交互。其它进程都是在用户登录或运行程序时创建,在运行结束或用户注销时终止,但系统服务进程不受用户登录注销的影响,它们一直在运行着。这种进程有一个名称叫守护进程(Daemon)。 下面我们用ps axj命令查看系统中的进程。参数a表示不仅列当前用户的进程,也列出所有其他用户的进程,参数x表
2016-11-02 21:38:48 219
原创 Linux之————线程通信(二)
续接上一部分线程通信(一)的内容 线程的同步和互斥: 进行多线程编程,因为无法知道哪个线程会在哪个时候对共享资源进行操作,因此让如何保护共享资源变得复杂,通过下面这些技术的使用,可以解决线程之间对资源的竞争:1. 互斥量Mutex2. 信号灯Semaphore3. 条件变量Conditions mutex互斥锁线程控制互斥锁是用一种简单的加锁方法来控制对共享
2016-11-01 22:03:54 346
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人