软件项目实践中的C语言一瞥
以编码规范为基础,对C语言的发展历史、特点、程序版式、注释、变量和函数命名、异常保护、指针、结构体、文件操作等诸多内容进行了详细的描述,并对实际软件开发工作中经常用到的配置文件、算法、日志等进行了一定的介绍。
知识的港湾
高级软件开发工程师
展开
-
将前缀和后缀相同的文件移动到同一个目录的算法设计及C代码实现
将前缀和后缀相同的文件移动到同一个目录的算法设计及C代码实现。原创 2016-05-14 13:55:56 · 6241 阅读 · 0 评论 -
Linux下合并前缀相同的文件的程序流程及其C代码实现
一、概述 在实际的软件开发项目中,会出现对多个前缀(或后缀)相同的文件进行合并的需求。也就是说,将这些前缀(或后缀)相同的文件中的内容合并到一个文件中。这些文件的来源可能是前一流程中程序生成的文件,也可能是其他模块生成的文件。 例如,我们要将前缀相同(以“Test_”作为前缀)的Test_1.txt和Test_2.txt文件中的内容合并到ResultFile.txt文件中,如果Test_1.tx原创 2015-07-09 10:57:35 · 7028 阅读 · 6 评论 -
Linux下一个简单的日志系统的设计及其C代码实现
1.概述 在大型软件系统中,为了监测软件运行状况及排查软件故障,一般都会要求软件程序在运行的过程中产生日志文件。在日志文件中存放程序流程中的一些重要信息,包括:变量名称及其值、消息结构定义、函数返回值及其执行情况、脚本执行及调用情况等。通过阅读日志文件,我们能够较快地跟踪程序流程,并发现程序问题。因此,熟练掌握日志系统的编写方法并快速地阅读日志文件,是对一个软件开发工程师的基本要求。 本文详细地原创 2015-05-22 15:17:45 · 20390 阅读 · 36 评论 -
Linux下配置文件读取操作流程及其C代码实现
一、概述 Linux具有免费、可靠、安全、稳定、多平台等特点,因此深受广大程序员的欢迎。 为了体现软件产品的灵活性,可添加配置文件存放某些重要的参数,在部署的时候根据实际的安装环境对每个配置项的值进行设置。这就要求程序能够准确读取到各个配置项的值。 本文详细介绍了Linux下配置文件的读取方法及读取操作的C代码实现,为相关的软件开发工作的开展提供了有益的参考。二、配置文件介绍 为了便于程序处原创 2015-05-07 16:47:57 · 20159 阅读 · 17 评论 -
Windows下一个简单的日志系统的C代码实现
问题描述 实现一个简单的基于Windows的日志系统,要求写入日志文件的内容的样式如下: [时间]+[文件名]+[日志等级]+日志具体内容 如: [2015.02.2514:35:13.143][WriteLog.c][INFO]This is a test! 其中,“2015.02.25 14:35:13.143”为当前时间(精确到毫秒原创 2015-03-24 15:40:50 · 7380 阅读 · 0 评论 -
生成随机密码的C代码实现
问题描述 某些软件在登录的时候,经常会要求用户输入一个系统发过来的随机密码(或称校验码),用于对用户的身份进行校验,防止恶意登录。 要求用C语言生成一组长度为6位的随机密码串。 rand函数简介 rand函数是真正的随机数生成器,它会返回一个范围在0到RAND_MAX(2147483647)之间随机数值。 该函数的原型为:in原创 2015-03-21 14:12:37 · 5615 阅读 · 0 评论 -
修改文件后缀的C语言实现
在实际的软件开发项目中,大家也许会遇到修改文件的后缀的需求(例如,将doc格式修改为docx格式)。本文提供了修改文件后缀的C语言实现,并演示了修改文件后缀的过程。 1. C程序实现 2. 修改后缀的过程 step 1: 在本地的D盘中,有一个叫做“Test”的文件夹,该文件夹下有一个命名为“123.doc”的文件,如下图所示:原创 2015-03-20 14:58:07 · 9029 阅读 · 0 评论 -
两种文件配置项设置方法及C程序处理的比较
在实际的软件开发项目中,程序经常需要从外界读取某些可能会变化的信息,我们把需要读取的信息统一放到一个文件中(通常是ini文件),并把这个文件叫做配置文件。 考虑这样一个场景,程序需要与多个数据库打交道,要从配置文件中读取各个数据库的信息。那么,我们如何在配置文件中设置各个配置项以及如何编写程序将各配置项的值读入呢? 假设有两个数据库,每个数据库包含了IP地址和端口号两种原创 2014-10-18 11:16:57 · 2310 阅读 · 2 评论 -
ASCII与Unicode编码消息写文件浅析
【文章摘要】 ASCII与Unicode是两种常见的字符编码。它们的表示方法不一样,因而在程序中就要区别处理。 本文基于作者的实际开发经验,对ASCII与Unicode两种字符编码消息的写文件过程进行了详细的分析,为相关软件开发工作的开展提供了有益的参考。【关键词】 ASCII Unicode C语言 编码 开发 一、ASCII与Unicode编码简介原创 2014-10-10 17:20:11 · 2663 阅读 · 0 评论 -
两起变量初始化问题的排查过程
【文章摘要】 变量初始化看似很简单,但如果初始化位置不当或忘记初始化,则会导致程序行为异常。 本文基于作者的实际项目经验,对近期遇到的两起变量初始化问题进行了详细的分析,为相关软件问题的分析及解决提供了有益的参考。【关键词】 C语言 变量 初始化 开发 一、问题1的排查过程 在对某程序版本进行自测的过程中,发现在程序运行一段时间之后,某指针原创 2014-09-24 16:24:09 · 1998 阅读 · 0 评论 -
Linux下的目录扫描操作函数使用实践
【文章摘要】 本文以实际的C源程序为例子,介绍了Linux下的目录扫描函数(scandir)的使用方法,为相关开发工作的开展提供了有益的参考。【关键词】 C语言 Linux 目录扫描 makefile scandir 一、scandir命令简介 scandir函数的声明为: int scandir(const char *dir, str原创 2014-08-04 15:52:47 · 4032 阅读 · 3 评论 -
Linux下的目录创建命令使用实践
【文章摘要】 本文以实际的C源程序为例子,介绍了Linux下的目录创建命令(mkdir)的使用方法,为相关开发工作的开展提供了有益的参考。【关键词】 C语言 Linux 目录创建 makefile 开发 一、mkdir命令简介 mkdir命令用来创建指定名称的目录,其命令格式为:mkdir [选项] 目录... 其中,[选项]可以是“-m”原创 2014-07-14 18:53:38 · 4470 阅读 · 0 评论 -
写给大家看的编程规范
(本文参加 2014 CSDN博文大赛,谢谢。)【文章摘要】 “没有规矩,不成方圆”,在实际的软件开发项目中,做任何事情都不是随心所欲的,我们编写代码需要遵守项目组约定的编程规范。很遗憾,在学校的计算机课程中,重在教导学生实现一定的程序功能,对程序的编写规范很少提及,这也就导致了从学校毕业踏上工作岗位之后一段艰辛的学习过程。 本文根据自身的软件开发实践,对实际的软件开发项目原创 2014-07-07 17:26:17 · 3496 阅读 · 4 评论 -
一起C语言中程序时序问题的排查过程
【文章摘要】 对于由多个模块协同工作的软件来说,程序处理的时序是非常重要的。当消息处理的顺序出现混乱时,程序就会出现异常。 本文基于作者的实际项目经验,对软件模块之间的时序问题进行了详细的分析,为相关软件问题的分析及解决提供了有益的参考。【关键词】 C语言 时序 模块 开发 消息 一、问题描述 在某软件版本中,有两个模块(模块A与模块B)之间原创 2014-06-26 18:56:41 · 4588 阅读 · 0 评论 -
一个回车符引发的问题思考
在维护和开发通信类软件产品的过程中,经常需要处理一些软件故障问题。在问题刚出现的时候,大家可能显得手足无措,有一种天都要塌下来的感觉。但在问题原因找到之后,大家又会觉得问题原因非常的简单,要是当初开发的时候仔细一点,是不会犯这样的低级错误的。最近,本人就遇到了一个回车符引发的问题。 近日,在开发某软件版本时需要对文件进行操作,在代码中使用了Linux C语言中的opendir函数,但是原创 2014-06-20 16:33:45 · 2599 阅读 · 1 评论 -
C语言中结构体参数变量的传递
【文章摘要】 在C语言中,结构体参数变量经常作为函数的参数来进行传递。但如果参数设置不当,会出现内存问题。 本文以实际的程序代码为例,详细地介绍如何正确地使用结构体参数变量,为相关的开发工作提供了参考。【关键词】 C语言 结构体 函数 参数 传递 一、前言 本文中的程序实现对员工信息结构体字段赋值并打印出来的功能。该结构体的定义如下:// 员原创 2014-06-17 19:12:47 · 20498 阅读 · 18 评论 -
C程序中唯一序列号的生成
在实际的软件开发项目中,经常会涉及唯一序列号的生成。本文以一个实际的程序为例,介绍了唯一序列号的生成过程。 本文生成的序列号的样式为:MMDDHHMINSS_XXXXXX。 程序如下:/*********************************************************************** 版权所有 (C)2014, 中兴通讯股份原创 2014-06-03 20:10:48 · 8742 阅读 · 4 评论 -
让你提前认识软件开发(24):C语言的发展历史和主要特点
第1部分 重新认识C语言C语言的发展历史和主要特点 作为一门众所周知的计算机编程语言,C语言是谁发明的呢?它是如何演进的?它有何特点?到底有多少人在使用它?1. C语言之父 C语言是1972年由美国贝尔实验室的计算机科学家Dennis Ritchie(丹尼斯·里奇)设计发明的。因此,Dennis Ritchie被誉为“C语言之父”(他已于2011年10月9日去世,享年70原创 2014-05-25 12:35:49 · 3345 阅读 · 0 评论 -
让你提前认识软件开发(23):如何在C语言中执行shell命令?
第1部分 重新认识C语言如何在C语言中执行shell命令? 【文章摘要】 Linux操作系统具备开源等诸多优秀特性,因此在许多通信类软件(主流开发语言为C语言)中,开发平台都迁移到了Linux上,同时shell操作在Linux的编程中占有很重要的地位,这就需要开发人员熟练掌握在C语言中执行shell命令的相关操作。 本文用实际的代码演示了如何在C语言程序中执行shel原创 2014-05-21 20:20:59 · 3227 阅读 · 0 评论 -
让你提前认识软件开发(22):shell脚本中的文件操作
第1部分 重新认识C语言shell脚本中的文件操作 【文章摘要】 编写shell脚本时,经常会涉及到对文件的操作,比如从文件中读取一行数据、向文件追加一行数据等。完成文件读写操作的方法有很多,了解各种命令下文件操作的执行情况,有助于开发人员在不同使用场景下选择合适的命令。 本文以实际的shell脚本为例,介绍了对文件进行操作的不同方法,为相关开发工作提供了参考。【关键词】原创 2014-05-17 20:49:42 · 3392 阅读 · 0 评论 -
让你提前认识软件开发(21):C程序中的定时器
第1部分 重新认识C语言C程序中的定时器 【文章摘要】 在实际的C程序中,一个模块执行多个操作是很常见的事情。如果多个操作同时进行,会出现程序效率低下、计算机CPU占用率过高等情况,这时就需要对所有操作的执行顺序作一个合理的安排,这就涉及到定时器的使用。 本文对C程序中的定时器的类型、设置和清除方法等作了详细的介绍,为相关开发工作的开展提供了参考。【关键词】原创 2014-05-14 21:50:15 · 4110 阅读 · 2 评论 -
让你提前认识软件开发(20):如何在C语言里面执行SQL语句?
【文章摘要】 在通信类软件中,程序经常需要与数据库打交道。为了实现诸如从数据库中获取数据、更新数据库表某字段、插入或删除某条数据等功能,就需要在C语言程序中构造一些SQL语句,并用函数来执行这些SQL语句。 本文介绍如何在C语言程序中构造并执行SQL语句,为相关软件开发工作的开展提供了参考。【关键词】 SQL语句 C语言 程序 流程 开发 一、为原创 2014-05-11 08:13:25 · 5533 阅读 · 2 评论 -
让你提前认识软件开发(19):C语言中的协议及单元测试示例
第1部分 重新认识C语言C语言中的协议及单元测试示例 【文章摘要】 在实际的软件开发项目中,经常要实现多个模块之间的通信,这就需要大家约定好相互之间的通信协议,各自按照协议来收发和解析消息。 本文以实际的程序代码为例,详细介绍了如何用C语言来实现通信协议,并基于对协议字段的判断,说明了程序单元测试的过程,为相关的开发工作提供了有益的参考。【关键词】 软件开发原创 2014-05-07 20:18:16 · 3536 阅读 · 0 评论 -
也来说一下八皇后问题
(本文的所有代码均是基于此文:http://blog.csdn.net/mbh_1991/article/details/23869459,感谢博主的贡献!) 最近看了一篇文章(见上面给出的链接),里面讲到了回溯算法和八皇后问题。仔细阅读全文之后,发现作者所写与实际开发工作还是有一定的差别,因此特发此文,表达一下个人的看法,请各位批评指正。 什么是回溯算法?举原创 2014-04-18 16:32:53 · 2974 阅读 · 0 评论 -
让你提前认识软件开发(18):C语言中常用的文件操作函数总结及使用方法演示代码
第1部分 重新认识C语言C语言中常用的文件操作函数总结及使用方法演示代码 1. C语言中常用的文件操作函数总结(1) fopen作用:打开文件。表头文件:#include 定义函数:FILE *fopen(const char *path, const char *mode);函数说明:参数path字符串包含欲打开的文件路径及文件名,参数mode字符串则代表着流形态。mode有下列几种形态字符串:原创 2014-05-03 17:08:42 · 3040 阅读 · 0 评论 -
让你提前认识软件开发(17):makefile文件的书写及应用
第1部分 重新认识C语言makefile文件的书写及应用 【文章摘要】 makefile用于Linux下整个工程的编译,对于Linux下的C/C++语言的编译是至关重要的。 本文以实际的C源程序为例子,介绍如何使用makefile来编译Linux下的C语言工程,为相关开发工作的开展提供了参考。 【关键词】 makefile C语言 Linux 编译原创 2014-04-30 20:47:17 · 2741 阅读 · 2 评论 -
让你提前认识软件开发(16):如何对程序进行优化?
第1部分 重新认识C语言如何对程序进行优化? 对程序进行优化,是软件开发工程师必然会涉及到的问题。那么为什么要对程序进行优化呢?原因有以下几个: 第一,在原程序基础之上新增、删除或修改了功能,需要改变原程序流程。客户需求随时可能会变化,今天已经实现的功能,说不定明天就要修改或去掉。落实到程序上面,就需要我们随时准备对写好的代码进行修改,而不要奢望写好原创 2014-04-26 19:48:11 · 4666 阅读 · 0 评论 -
让你提前认识软件开发(15):程序调试的利器—日志
第1部分 重新认识C语言程序调试的利器—日志 如果世界上有一个人能够保证一次写出来的代码是百分之百正确的,那么毫无疑问,他一定是世界上最优秀的程序员,没有之一。为什么要求代码写好过后要进行充分的自测(包括单元测试和集成测试)?就因为是人皆会犯错,使程序就会有bug。作为一名软件开发人员,必须要学会对程序进行测试,也就是要学会程序的调试。 一般而言,对原创 2014-04-24 08:22:12 · 6697 阅读 · 4 评论 -
让你提前认识软件开发(14):程序中的算法
第1部分 重新认识C语言程序中的算法 【文章摘要】 算法(Algorithm),是程序的灵魂。著名计算机科学家、图灵奖获得者沃思曾提出过一个公式:数据结构+算法=程序。可见,算法在程序中占有非常重要的地位。 在实际的软件开发项目中,不管是有意设计或是无意为之,我们几乎随时在和算法打交道。小到定义一个变量,大到编写一个函数,这些都是算法的实现过程。原创 2014-04-20 23:28:04 · 6916 阅读 · 0 评论 -
让你提前认识软件开发(13):指针及结构体的使用
第1部分 重新认识C语言指针及结构体的使用 【文章摘要】 指针在C语言中占有很重要的地位,同时也是学习C语言的难点所在。结构体属于用户自己建立的数据类型,在实际的软件开发项目中应用很广泛。 本文以实际的例子介绍了C语言中指针和结构体的使用方法,为进一步的学习和应用提供了有益的参考。【关键词】 C语言 指针 结构体 文件原创 2014-04-16 20:34:24 · 3209 阅读 · 0 评论 -
让你提前认识软件开发(12):配置文件读取及文件操作
让你提前认识软件开发---学长的软件开发经验总结(12)配置文件读取及文件操作 【文章摘要】 在通信领域的软件开发项目中,C语言是主流的编程语言,而文件操作在其中又占有很重要的地位。此外,为了体现产品的灵活性,可添加配置文件对某些重要的参数进行按需配置。这就要求程序能够准确读取到各个配置项的值。 本文以一个实际的小软件为例,介绍了C语言中配置文件的读取原创 2014-04-12 20:47:46 · 6129 阅读 · 6 评论 -
让你提前认识软件开发(11):localtime与GetLocalTime
第1部分 重新认识C语言localtime与GetLocalTime 【文章摘要】 在C语言中,有两个获取当前时间的函数:localtime和GetLocalTime。它们在诸如对账一类的程序中应用很广。本文对localtime和GetLocalTime进行较为详细的介绍,并举例说明它们的用法。【关键词】 localtime GetLoca原创 2014-04-09 20:03:20 · 6268 阅读 · 4 评论 -
让你提前认识软件开发(10):字符串处理函数及异常保护
第1部分 重新认识C语言字符串处理函数及异常保护 在软件开发项目中,经常有程序要对字符串进行操作。为此,C函数库中提供了一些用来对字符串进行处理的函数,使用起来非常的方便。但由于字符串都有长度,如果随意对不同的字符串进行连接和拷贝等操作,就可能出现意想不到的后果。 因此,在实际开发过程中,十分强调对字符串处理函数进行异常保护。本文详细介绍如何正确运用原创 2014-04-05 09:02:54 · 3176 阅读 · 8 评论 -
让你提前认识软件开发(9):C语言中的大括号
第1部分 重新认识C语言C语言中的大括号 在C语言中,大括号“{}”是一类比较特殊的符号。如果能够在适当的地方利用它,可使代码看起来非常的整洁,也能够从侧面体现出一个编程人员的专业修养。 那么,在C语言中,大括号应该用在哪些地方呢? 1.初始化数组变量 在实际的软件开发项目中,变量在使用前应初始化,防止未经初始化原创 2014-04-02 20:09:54 · 14549 阅读 · 10 评论 -
让你提前认识软件开发(8):memset()与memcpy()函数
第1部分 重新认识C语言memset()与memcpy()函数 软件项目中的代码,少则数千行,多则上万行,但并非无规律可循。阅读了那么多代码之后,我发现有两个函数出现的频率很高,那就是memset()与memcpy()函数,它们都是C语言编程中经常要用到的。工作之余,我查了一些资料,现对它们作一个简单的说明。 1. memset()函数原创 2014-03-29 10:41:08 · 3405 阅读 · 8 评论 -
让你提前认识软件开发(7):变量及函数的命名
第1部分 重新认识C语言变量及函数的命名 最近看了一则笑话,大意是路人甲到电信营业厅去交电话费,给营业员说要充50块钱,那个营业员问了一句“How much?”。路人甲心想现在社会真的与以往不同了,连一般的营业员都开始流行讲英语了,于是便以不是很流利的口语说了一句“Fifty YUAN”。那个营业员一头雾水地看着他,说道“电话号码多少?”路人甲这才恍然大悟,原来是原创 2014-03-26 20:23:08 · 3288 阅读 · 6 评论 -
让你提前认识软件开发(6):程序的版式和注释
在《高质量程序设计指南(C/C++语言)》中,作者说:可以把程序的版式比喻为“书法”,好的“书法”可以让人对程序一目了然,看得兴致勃勃。确实,我们一打开程序,首先看到的便是程序的排版,我们的第一印象便是程序写得是工整还是凌乱。都说第一印象很重要,为了给大家留下好的第一印象,我们一定要注重程序的版式。 此外,好的注释能够帮助读者更快地理解程序,提高工作的效率。也许是因为工作比较忙的原创 2014-03-23 09:15:19 · 4817 阅读 · 5 评论 -
让你提前认识软件开发(5):重定义一些基本数据类型
第1部分 重新认识C语言重定义一些基本数据类型 在编写程序的时候,定义变量是必不可少的,这时就要用到一些基本数据类型。 也许你会说,定义一个变量有什么困难的,这是很容易办到的。要定义整型变量,直接用“int i;”语句就可以了;要定义字符型变量,直接用“char c;”就可以了。确实,这是学校教育教给我们的,但在实际工作中却不能这样做。 为原创 2014-03-19 20:04:30 · 5884 阅读 · 12 评论 -
让你提前认识软件开发(4):破除几个有关软件开发的错误观念
第1部分 重新认识C语言破除几个有关软件开发的错误观念 我们做事情的能力能够有所提升,观念的转变是关键。 从学生转变为职业人的过程是很艰难的,因为我们要与自己积累了多年的“老毛病”作斗争,这些“老毛病”包括:做事拖拉、不守时、不遵守规则、怕吃苦等。就像发射火箭卫星一样,摆脱重力的束缚所花费的燃料是最多的,一旦成功,那么以后的流程就会比较轻松了。所谓“万事原创 2014-03-15 22:37:21 · 3689 阅读 · 7 评论 -
让你提前认识软件开发(3):学校C语言教材的缺陷
第1部分 重新认识C语言学校C语言教材的缺陷 我在走出校门的时候非常的“轻狂”,认为自己在学校里面已经学得够多了,工作就只算是小菜一碟。但在工作中屡次碰壁之后,我才发现自己当时的想法是多么的天真。我们踏上工作岗位,一切几乎都要从零开始。 对于大家“非常熟悉”的C语言来说,我们在学校里面学的非但不够用,而且在很多地方对大家还有“误导”的作用,让我们认为编原创 2014-03-08 17:01:33 · 4465 阅读 · 1 评论