C语言
kingyal
加油!
展开
-
数据结构之线性链表&&兼容多平台编译
最近,发现自己对数据结构还不熟,于是就想复习下数据结构,把数据结构中的链表,栈,队列,二叉树等涉及到的代码再敲一遍;同时,又想到,现在做工程项目时,做出的产品代码往往需要具有可移植性。基于上述原因,构建了如下目录结构:如上图所示,在dat_structure_study文件夹下面,有三个文件夹,一个Makefile与system.cfg。Makefile:这是顶层的makefile。system.cfg:这是为了兼容各个系统所作的配置文件。common:放公共头文件代码。chapter_x:《数原创 2020-11-29 19:48:18 · 81 阅读 · 0 评论 -
嵌入式C中的分级打印功能
由于工作的需要,项目需要添加分级打印函数。分级打印函数的好处如下: 1.产品在使用时,客户不想看到屏幕上有过多的打印信息,但是工作人员平时在调试的时候则需要通过打印信息定位问题。 2.在调试过程中,可根据打印等级,显示问题的严重程度。 打印等级一般有如下分类:分类描述debug一般用于程序开发测试时的打印输出,用于验证程序的设计逻辑是否满足上层应用的设计...原创 2020-03-29 18:30:13 · 803 阅读 · 4 评论 -
Linux中的vim显示中文字符方法
linux的vim编译器显示中文字符的方法是添加编码格式“utf-8”编码方式:1.打开文件“/etc/vim/vimrc” ,指令为:vim /etc/vim/vimrc2.在打开的文件的最最底部添加代码“set fencs=utf-8,GB18030,ucs-bom,default,latin1“如下图:添加后记得一定要保存!此时,vim就可以显示中文了。...原创 2019-03-11 11:26:56 · 6422 阅读 · 4 评论 -
Linux系统编程之进程相关的三个函数函数:getpid(), fok(),execl()
1. 首先,我们来看第一个函数族getpid,这个函数族包括两个函数:geipid():用来获当前函数的进程号;getppid():用来获取当前进程的父进程的进程号。接下来是一个demo,用来获取当前进程及其父进程的进程号:#include <sys/types.h>#include <unistd.h>#include <stdio.h>...原创 2019-02-26 21:44:18 · 666 阅读 · 0 评论 -
Linux系统编程之无名管道
在linux中,一切文件! 无名管道也是一种文件,无名管道用于具有血缘关系的进程之间,为半双工模式。我们可以想象一下,一个管道有两端,一个用来写入数据,另一个用来读取数据,无名管道用int pipe(int pipefd[2])函数创建,可用man 2 pipe在Linux中查看函数详情。因此,无名管道在创建成功后,会生成两个文件描述符,一个用来指向读端口,一个指向写端口,这两个文...原创 2019-03-01 22:15:25 · 711 阅读 · 0 评论 -
Linux系统编程之移动文件函数rename
移动文件用到的命令使mv,对应的linux应用编程函数为rename,可用 man 2 rename查看函数的具体含义,我们再linux中新建一个文件时,这个文件的文件名其实不仅仅包括我们输入的这个名,还包括它的文件路径,这里,我们新建一个test1文件:编写程序,将test1改名为test2:#include <stdio.h>int main(int argc, c...原创 2019-02-24 22:59:09 · 2517 阅读 · 0 评论 -
Linux系统编程之chdir转入其他目录
chdir函数可以用来切换到其他目录下,这里可用前面学过的getcwd函数来获取当前目录,具体函数如下:#include <unistd.h>#include <stdio.h>#define LENGTH 255int main(int argc, char *argv[]){ int ret; char pwd[LENGTH]; ...原创 2019-02-13 20:59:17 · 596 阅读 · 0 评论 -
Linux系统编程之软硬连接与解除连接
这次编写的是硬链接与软连接相关的程序:#include <stdio.h>#include <unistd.h>int main(int argc, char *argv[]){ int ret; if(argc < 5) { printf("please check the input file!"); ...原创 2019-02-23 21:05:13 · 692 阅读 · 0 评论 -
Linux系统编程之修改目录与文件权限的chmod函数组
linux中的文件的权限修改可通过chmod命令来修改,也可以通过编程来实现文件权限的修改,我们可以通过man 2 chmod查看这个函数是如何使用的。如下是一个修改两个文件的权限的demo:#include <sys/stat.h>#include <sys/types.h>#include <fcntl.h>#include <stdio...原创 2019-01-22 22:11:15 · 1812 阅读 · 0 评论 -
Linux系统编程之管理目录与文件的stat函数组
在ubuntu中,我们可以通过ls相关命令查看文件和目录的有关信息,如使用ls -ail,我们可以看到文件的相关信息,如下图所示,那么,我们如何通过编程提取相关文件的信息呢?此时,就可以用stat函数来实现这个功能。首先,我们通过man命令来查看下stat相关函数组,使用命令man 2 stat就可以看到如下信息:从以上图中,我们可以看到,包含了stat,fstat,lstat三个...原创 2019-01-22 21:36:47 · 434 阅读 · 0 评论 -
Linux系统编程之创建文件夹与删除文件夹的mkdir与rmdir函数
在linux系统编程中,可通过mkdir函数编程实现文件夹的创建,通过rmdir函数删除文件,函数代码如下,比较简单:mkdir函数创建文件:#include <sys/stat.h>#include <sys/types.h>#include <stdio.h>int main(int argc, char *argv[]){ int...原创 2019-01-23 22:11:40 · 801 阅读 · 0 评论 -
Linux系统编程之getcwd函数族获取当前目录
在linux系统编程中,可通过getcwd获取当前目录,就像在ubuntu中用命令pwd获取当前目录一样,只不过这里是通过编程实现。首先,通过man命令查看下getcwd相关函数,输入man 2 getcdw,进入如下界面:看到与获取目录相关的三个函数,接下来,我们通过代码来实现:#include <unistd.h>#include <stdio.h>...原创 2019-01-23 21:06:59 · 2776 阅读 · 0 评论 -
堆(heap)与栈(stack)的区别
堆区(heap):一般由程序员分配和释放,若程序员不释放,程序结束时可能由操作系统回收,但它与数据结构中的堆不是一回事,分配方式类似于链表。 栈(stack):由编译器自动分配和释放,存函数的参数值,局部变量等,其操作方式类似于数据结构中的栈。 全局区(静态区)(static):全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量在块区域,未初始化的全局变量和未初始化的...原创 2018-08-18 14:58:51 · 6275 阅读 · 0 评论 -
C语言知识点补充(1)
对之前的C语言知识点的补充原创 2017-08-18 10:56:09 · 330 阅读 · 0 评论 -
C语言的一些知识点
指针与函数是c语言的精髓原创 2017-08-18 09:14:28 · 196 阅读 · 0 评论