strdup() 不是标准的 C 函数。strdup() 在内部调用了 malloc() 为变量分配内存,不需要使用返回的字符串时,需要用 free() 释放相应的内存空间,否则会造成内存泄漏。
epoll 是Linux内核中的一种可扩展IO事件处理机制,最早在 Linux 2.5.44内核中引入,可被用于代替POSIX select 和 poll 系统调用,并且在具有大量应用程序请求时能够获得较好的性能( 此时被监视的文件描述符数目非常大,与旧的 select 和 poll 系统调用完成操作所需 O(n) 不同, epoll能在O(1)时间内完成操作,所以性能相当高),epoll 与 FreeBSD的kqueue类似,都向用户空间提供了自己的文件描述符来进行操作。
MAKE_STD_ZVAL(zv) 宏替换后:
(zv) = (zval *) emalloc(sizeof(zval)); (zv)->refcount__gc = 1; (zv)->is_ref__gc = 0;
结构体类型变量的定义
在定义结构体类型变量之前,首先需要设计结构体,定义结构体的名称和成员的数据类型,然后使用结构体说明变量,这时结构体就成为了一种新的数据结构。定义结构体使用修饰符 struct,它一般形式为:
struct 结构体名 {
数据类型 成员名1;
数据类型 成员名2;
数据类型 成员名3;
};
常用 头文件 及 包含函数
C 语言有如下 3 种作用域。
1、全局变量
2、文件内部的静态变量
3、局部变量
fcntl系统调用
功能描述:根据文件描述词来操作文件的特性。
用法:
int fcntl(int fd, int cmd); int fcntl(int fd, int cmd, long arg); int fcntl(int fd, int cmd, struct flock *lock);
散列表(也叫哈希表),是根据关键码值直接进行访问的数据结构,也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。这个映射函数叫做散列函数,存放记录的数组叫做散列表。
-
数据结构中,有个时间算法复杂度O(n)的概念来衡量某种算法在时间效率上的优劣。哈希表的理想算法复杂度为O(1),也就是说利用哈希表查找某个值,系统所使用的时间在理想情况下为定值,这就是它的优势。那么哈希表是如何做到这一点的呢?
C语言有5种基本的数据类型,分别为 字符型、整型、单精度浮点型、双精度浮点型、空类型。
ANSI C标准基本类型的字长与范围 | ||
---|---|---|
基本类型 | 字长 | 范围 |
char(字符型) | 1字节 | -128~127 |
int(整型) | 2字节 | -32768~32767 |
float(单精度浮点型) | 4字节 | 约精确到6位数 |
double(双精度浮点型) | 8字节 | 约精确到12位数 |
void(空值型) | 0字节 | 无值 |
有时候,我们需要在自己的程序(进程)中启动另一个程序(进程)来帮助我们完成一些工作,那么我们需要怎么才能在自己的进程中启动其他的进程呢?在Linux中提供了不少的方法来实现这一点,下面就来介绍一个这些方法及它们之间的区别。
一、system()函数调用
system函数的原型为:
#include <stdlib.h>
int system (const char *string);