c语言
做一个快乐的吃货
从今天起开始写博客,把自己知道的知识分享给大家
展开
-
守护进程daemon
#include <unistd.h>int daemon(int nochdir, int noclose);如果nochdir为零,daemon()将进程的当前工作目录更改为根目录(“/”); 否则,当前工作目录保持不变。如果noclose为零,daemon()将标准输入,标准输出和标准错误重定向到/dev/null; 否则,不会对这些文件描述符进行更改。(参数为0时有效)...原创 2020-04-16 15:15:07 · 202 阅读 · 0 评论 -
进程间通信----方式四(有名管道)
前一篇文章——Linux进程间通信——无名管道中,我们看到了如何使用匿名管道来在进程之间传递数据,同时也看到了这个方式的一个缺陷,就是这些进程都由一个共同的祖先进程启动,这给我们在不相关的的进程之间交换数据带来了不方便。这里将会介绍进程的另一种通信方式——命名管道,来解决不相关进程间的通信问题。一、什么是命名管道命名管道也被称为FIFO文件,它是一种特殊类型的文件,它在文件系统中以文件名的...转载 2018-08-01 11:07:10 · 802 阅读 · 0 评论 -
进程间通信----方式三(无名管道)
进程间通信----共享内存、管道(有名、无名)、信号、信号量、消息队列、套接字一、什么是管道如果你使用过Linux的命令,那么对于管道这个名词你一定不会感觉到陌生,因为我们通常通过符号“|"来使用管道,但是管理的真正定义是什么呢?管道是一个进程连接数据流到另一个进程的通道,它通常是用作把一个进程的输出通过管道连接到另一个进程的输入。举个例子,在shell中输入命令:ls -l | gr...转载 2018-08-01 10:39:49 · 260 阅读 · 0 评论 -
进程间通信----方式二(消息队列)
进程间通信----共享内存、管道(有名、无名)、信号、信号量、消息队列、套接字二、消息队列消息队列提供了一种从一个进程向另一个进程发送一个数据块的方法。 每个数据块都被认为含有一个类型,接收进程可以独立地接收含有不同类型的数据结构。我们可以通过发送消息来避免命名管道的同步和阻塞问题。但是消息队列与命名管道一样,每个数据块都有一个最大长度的限制。Linux用宏MSGMAX和MSGMNB...转载 2018-07-27 17:07:47 · 237 阅读 · 0 评论 -
进程间通信----方式一(共享内存)
进程间通信----共享内存、管道(有名、无名)、信号、信号量、消息队列、套接字一、共享内存共享内存就是允许两个不相关的进程访问同一个逻辑内存。共享内存是在两个正在运行的进程之间共享和传递数据的一种非常有效的方式。不同进程之间共享的内存通常安排为同一段物理内存。进程可以将同一段共享内存连接到它们自己的地址空间中,所有进程都可以访问共享内存中的地址。特别提醒:共享内存并未提供同步机制...转载 2018-07-27 16:51:43 · 348 阅读 · 0 评论 -
extern 详细用法
1 基本解释 extern可以置于变量或者函数前,以标示变量或者函数的定义在别的文件中,提示编译器遇到此变量和函数时在其他模块中寻找其定义。当然在本文件中也可以使用extern声明这些,这样可以提示编程人员理解这是个为外部引用的变量或者函数。 另外,extern也可用来进行链接指定。2 问题:extern 变量 在一个源文件里定义了一个数组:char a[6]; 在另外一个文件...转载 2018-07-26 17:28:07 · 6251 阅读 · 0 评论 -
C语言堆栈入门---堆栈区别
记得刚学c的时候, 老师常数堆区栈区, 后来又来了个堆栈数据类型, 后来就彻底蒙了。下边转载了一篇博客, 自己作了下修改数据结构的堆和栈 首先在数据结构上要知道堆栈,实际上堆栈是两种数据结构:堆和栈。 堆和栈都是一种数据项按序排列的数据结构。栈就像装数据的桶或箱子 我们先从大家比较熟悉的栈说起吧,它是一种具有后进先出性质的数据结构,也就是说后存放的先取,先存放的...转载 2018-07-23 17:18:23 · 333 阅读 · 0 评论 -
关键字 const
一个比较经典的问题——问以下两种声明的区别:1) const char * p2) char * const p 这里的 const 关键字是用于修饰常量,书上说 const 将修饰离它最近的对象,所以,以上两种声明的意思分别应该是:1) p 是一个指向常量字符的指针,不变的是 char 的值,即该字符的值在定义时初始化后就不能再改变。2) p 是一个指向字符的常量指针转载 2016-12-19 13:59:16 · 260 阅读 · 0 评论 -
scanf,sscanf,fscanf
1. c语言scanfscanf函数称为格式输入函数,即按用户指定的格式从键盘上把数据输入到指定的变量之中。scanf函数是一个标准库函数,它的函数原型在头文件“stdio.h”中。与printf函数相同,C语言也允许在使用scanf函数之前不必包含stdio.h文件。scanf函数的一般形式为: scanf(“格式控制字符串”, 地址表列);其中,格式控制字符串的作转载 2016-10-12 10:51:34 · 830 阅读 · 0 评论 -
fgetc 与 getc的区别
两个都是用来从stream中取得一个字符的,区别在于调用getc函数时所用的参数stream不能是有副作用的表达式(稍后解释),而fgetc函数则可以,也就是说,getc可以被当作宏来调用,而fgetc只能作为函数来调用。 一般来说,调用宏比调用函数耗费的时间少。所以fgetc是一个函数 getc是一个宏 一般来说宏产生较大的代码,但是避免了函数调用的堆栈操作,所以速度会比较快。转载 2016-10-10 19:17:34 · 9411 阅读 · 0 评论 -
"rpm -qa" C 接口的实现过程
1.rpm -qa 的c代码的实现 这是写死的,仅实现rpm -qa的功能[main.c]#include #include #include #include #include static struct poptOption optionsTable[]={ {NULL, '\0', POPT_ARG_INCLUDE_TABLE, rpmQVSo原创 2016-06-27 15:52:04 · 1000 阅读 · 1 评论 -
c 关键字extern
1 基本解释:extern可以置于变量或者函数前,以标示变量或者函数的定义在别的文件中,提示编译器遇到此变量和函数时在其他模块中寻找其定义。此外extern也可用来进行链接指定。 也就是说extern有两个作用,第一个,当它与"C"一起连用时,如: extern "C" void fun(int a, int b);则告诉编译器在编译fun这个函数名时按着C的规则去翻译相应的函数名而转载 2016-06-02 15:23:06 · 267 阅读 · 0 评论 -
c 语言中的关键字static
Static在C语言里面有两个作用,第一个是修饰变量,第二个是修饰函数。1、Static修饰变量按照作用范围的不同,变量分为局部变量和全局变量。如果用static修饰变量,不论这个变量是全局的还是局部的都是存储在静态数据区。下面分开来讲:¨ 如果用static修饰全局变量,我们称其为静态全局变量。我们用static修饰全局变量的主要目的就是:使得其作用域仅限于变量转载 2016-06-01 15:29:02 · 444 阅读 · 0 评论 -
strcpy 与memcpy的区别
strcpy和memcpy都是标准C库函数,它们有下面的特点。strcpy提供了字符串的复制。即strcpy只用于字符串复制,并且它不仅复制字符串内容之外,还会复制字符串的结束符。已知strcpy函数的原型是:char* strcpy(char* dest, const char* src);memcpy提供了一般内存的复制。即memcpy对于需要复制的内容没有限制,因此用途更广。转载 2016-06-01 15:24:40 · 262 阅读 · 0 评论 -
linux stat函数
我经常在c函数中用stat函数检测一个文件或目录是否存在表头文件: #include #include 定义函数: int stat(const char *file_name, struct stat *buf);函数说明: 通过文件名filename获取文件信息,并保存在buf所指的结构体stat中返回值:转载 2016-06-01 15:20:27 · 487 阅读 · 0 评论 -
libxml2的安装及使用
本文着重介绍解析xml的libxml2库的安装及使用,举例说明创建和解析xml的过程。一、libxml2的安装 关于libxml2的介绍请参考官方网址http://xmlsoft.org/,下载最新的libxml2库http://xmlsoft.org/downloads.html。具体安装步骤:1、解压:$tar zxvf libxml2-2.9.1.tar.gz转载 2016-05-06 16:22:28 · 23571 阅读 · 0 评论 -
gdb的使用
gdb主要是用来对程序进行调试,简单来说就是对代码的执行过程进行跟踪。有利于我们找出代码出错的地方。[root@nn progress-function]# gcc -g main.c systeminfo.c translate.c -o main -Wall //一定要记得加参数-g,才可以用gdb进行跟踪 [root@nn progress-function]#转载 2016-04-20 18:08:57 · 468 阅读 · 0 评论 -
应届毕业生面试宝典(仅限IT行业)------大学毕业时准备的资料
突然看到以前整理的资料,拿来给大家分享一下。包括C、系统编程、网络编程、BS等....你要是应届毕业生若是会这些,基本上哪家公司都会抢着要你。 c语言整理资料 大学期间主要是针对windows开发,windows 开发的特点:在电脑上安装一个vc 6.0 编辑程序->编译程序->看现象 ->若有问题就修改、调试程序(安装xshell:可以使用户在windows平台上访问linux主机、原创 2016-04-06 16:27:25 · 1589 阅读 · 0 评论