作者:AlbertWen
添加时间:2017-10-27 09:45:06
修改时间:2026-06-25 00:45:52
分类:
14.C/C++编程
编辑
我们已经知道,我们可以通过信号来终止进程,也可以通过信号来在进程间进行通信,程序也可以通过指定信号的关联处理函数来改变信号的默认处理方式,也可以屏蔽某些信号,使其不能传递给进程。那么我们应该如何设定我们需要处理的信号,我们不需要处理哪些信号等问题呢?信号集函数就是帮助我们解决这些问题的。
下面是信号函数集:
1、int sigemptyset(sigset_t *set);
该函数的作用是将信号集初始化为空。
2、int sigfillset(sigset_t *set);
该函数的作用是把信号集初始化包含所有已定义的信号。
3、int sigaddset(sigset_t *set, int signo);
该函数的作用是把信号signo添加到信号集set中,成功时返回0,失败时返回-1。
作者:AlbertWen
添加时间:2017-10-27 09:58:52
修改时间:2026-06-27 01:47:51
分类:
14.C/C++编程
编辑
一、什么是socket
socket,即套接字是一种通信机制,凭借这种机制,客户/服务器(即要进行通信的进程)系统的开发工作既可以在本地单机上进行,也可以跨网络进行。也就是说它可以让不在同一台计算机但通过网络连接计算机上的进程进行通信。也因为这样,套接字明确地将客户端和服务器区分开来。
作者:AlbertWen
添加时间:2017-10-26 14:02:59
修改时间:2026-06-25 11:53:22
分类:
14.C/C++编程
编辑
要写网络程序就必须用Socket,这是程序员都知道的。而且,面试的时候,我们也会问对方会不会Socket编程?一般来说,很多人都会说,Socket编程基本就是listen,accept以及send,write等几个基本的操作。是的,就跟常见的文件操作一样,只要写过就一定知道。
作者:AlbertWen
添加时间:2017-10-27 09:49:26
修改时间:2026-07-04 15:46:34
分类:
14.C/C++编程
编辑
一、什么是命名管道
命名管道也被称为FIFO文件,它是一种特殊类型的文件,它在文件系统中以文件名的形式存在,但是它的行为却和之前所讲的没有名字的管道(匿名管道)类似。
作者:AlbertWen
添加时间:2016-02-13 21:07:40
修改时间:2026-06-25 11:58:26
分类:
14.C/C++编程
编辑
| 头文件 |
说明 |
| <assert.h> |
验证程序断言 |
| <complex.h> |
复数算术运算支持 |
| <ctype.h> |
字符分类和映射支持 |
| <errno.h> |
出错码 |
| <fenv.h> |
浮点环境 |
作者:AlbertWen
添加时间:2017-10-27 10:02:50
修改时间:2026-07-07 04:17:22
分类:
14.C/C++编程
编辑
1、 管道概述及相关API应用
1.1 管道相关的关键概念
管道是Linux支持的最初Unix IPC形式之一,具有以下特点:
- 管道是半双工的,数据只能向一个方向流动;需要双方通信时,需要建立起两个管道;
- 只能用于父子进程或者兄弟进程之间(具有亲缘关系的进程);
- 单独构成一种独立的文件系统:管道对于管道两端的进程而言,就是一个文件,但它不是普通的文件,它不属于某种文件系统,而是自立门户,单独构成一种文件系统,并且只存在与内存中。
- 数据的读出和写入:一个进程向管道中写的内容被管道另一端的进程读出。写入的内容每次都添加在管道缓冲区的末尾,并且每次都是从缓冲区的头部读出数据。
作者:AlbertWen
添加时间:2017-10-27 09:47:24
修改时间:2026-06-28 01:14:17
分类:
14.C/C++编程
编辑
一、什么是管道
如果你使用过Linux的命令,那么对于管道这个名词你一定不会感觉到陌生,因为我们通常通过符号“|"来使用管道,但是管理的真正定义是什么呢?管道是一个进程连接数据流到另一个进程的通道,它通常是用作把一个进程的输出通过管道连接到另一个进程的输入。
举个例子,在shell中输入命令:ls -l | grep string,我们知道ls命令(其实也是一个进程)会把当前目录中的文件都列出来,但是它不会直接输出,而是把本来要输出到屏幕上的数据通过管道输出到grep这个进程中,作为grep这个进程的输入,然后这个进程对输入的信息进行筛选,把存在string的信息的字符串(以行为单位)打印在屏幕上。
作者:AlbertWen
添加时间:2017-10-26 17:48:14
修改时间:2026-06-28 01:52:42
分类:
14.C/C++编程
编辑
一、sprintf() 函数详解
在将各种类 型的数据构造成字符串时,sprintf 的强大功能很少会让你失望。
由于 sprintf 跟 printf 在用法上几乎一样,只是打印的目的地不同而已,前者打印到字符串中,后者则直接在命令行上输出。这也导致 sprintf 比 printf 有用得多。所以本文着重介绍 sprintf,有时也穿插着用用 pritnf。
sprintf是个变参函数,定义如下:
int sprintf( char *buffer, const char *format [, argument] … );
除了前两个参数类型固定外,后面可以接任意多个参数。而它的精华,显然就在第二个参数:格式化字符串上。
作者:AlbertWen
添加时间:2015-02-27 00:01:10
修改时间:2026-07-06 02:17:09
分类:
14.C/C++编程
编辑
作者:AlbertWen
添加时间:2017-12-13 14:33:06
修改时间:2026-07-03 01:12:16
分类:
14.C/C++编程
编辑
void Function(void) {
char *p = (char *) malloc(100 * sizeof(char));
}
就这个例子,千万不要认为函数返回,函数所在的栈被销毁指针(变量)也跟着销毁,申请的内存也就一样跟着销毁了!这绝对是错误的!因为申请的内存在堆上,而函数所在的栈被销毁跟堆完全没有啥关系。所以,还是那句话:记得释放 free()!