随笔分类 - C
摘要:IO模型 在UNIX/Linux下主要有4种I/O模型 阻塞I/O(最常用) 非阻塞I/O(可防止进程阻塞在I/O操作上,需要轮询) I/O多路复用(允许同时对多个I/O进行控制) 信号驱动I/O(一种异步通讯模型) 阻塞I/O模式 阻塞I/O模式是最普遍使用的I/O模式,大部分程序使用的都是阻塞模
阅读全文
摘要:一、相关函数 函数描述 int socket(int family, int type, int protocol); 位于:<sys/socket.h>;功能:创建一个网络套接字 ;返回:成功返回一个非负数的描述符,出错返回-1。 family:AF_INET(ipv4) | AF_INET6(i
阅读全文
摘要:线程概念 进程: 进程有独立的地址空间 Linux为每个进程创建task_structt 每个进程都参与内核调度,互不影响 线程: 进程在切换时系统开销大 很多操作系统引入轻量级进程LWP 同一进程中的线程共享相同地址空间 linux不区分进程、线程 线程资源 共享资源 可执行的命令 静态数据 进程
阅读全文
摘要:进程的概念 程序 存放在磁盘上的 指令和数据的有序集合(文件) 静态的 进程 执行一个程序所分配的资源总称 进程是程序一次执行过程 动态的,包括创建、调度、执行和消亡 进程控制块(pcd) 进程标识PID 进程用户 进程状态、优先级 文件描述符表 进程类型 交互进程:在shell下启动。以在前台运行
阅读全文
摘要:库的概念 库是一个二进制文件,包含的代码可被程序调用 标准C库、数学库、线程库...... 库有源码,可下载后编译;也可以直接安装二进制包 库的知识 库是事先编译好的,可以复用的代码 在os上运行的程序基本上都要使用库。使用库可以提高开发效率 Windows和Linux下库文件格式不兼容 Linux
阅读全文
摘要:文件基础 概念: 一组相关数据的有序集合 文件类型 不同操作系统支持的文件类型是不相同的,这里列出的是linux 常规文件 r 目录文件 d 字符设备文件 c 块设备文件 b 管道文件 p 套接字文件 s 符号链接文件 l 标准I/O 由ANSI C标准定义 主流操作系统上都实现了C库 特点: 标准
阅读全文
摘要:Make简介 工程管理器,顾名思义是指管理较多的文件 Make工程管理器也就是个"自动编译管理",这里的"自动"是指它能够根据文件时间戳自动发现更新过的文件而减少编译的工作量,同时,它能够读入Makefile文件的额内容来执行大量的编译工作 Make将只编译改动的代码文件,不用完全编译 Makefi
阅读全文
摘要:存储类别 auto auto说明的变量只能在某个程序范围内(局部)使用,通常在函数体内或函数中的复合语句里。(默认是随机值),在函数体的额某程序段内说明auto存储类型的变量一般省略关键字auto,如下: auto int k; int j; double x; register register称
阅读全文
摘要:补充知识点:条件编译 根据宏是否定义 #ifdef <macro> // ... #else // ... #endif // Demo: #define _DEBUG_ int main(int argc, const char *argv[]) { #ifdef _DEBUG_ printf("
阅读全文
摘要:string.h string .h 头文件定义了一个变量类型、一个宏和各种操作字符数组的函数。 常用字符串函数 字符串长度函数--strlen size_t strlen(const char *str) 格式:strlen(字符串数组) 功能:计算字符串长度 返回值:返回字符串实际长度,不包括'
阅读全文
摘要:一.指针 1.初级指针 内存和地址 硬件存储中有一个值得注意的地方是边界对齐。在要求边界对齐的机器上,整型值存储的起始位置只能是特定的字节,通常是2或4的倍数。对于程序员还要知道的是: (1)内存中每个位置由一个独一无二的地址标识; (2)内存中每个位置都包含一个值。 下面的例子显示了内存中的5个字
阅读全文
摘要:数组初体验 程序中也需要容器,只不过该容器有点特殊,它在程序中是一块连续的,大小固定并且里面的数据类型一致的内存空间,它还有个好听的名字叫数组。 我们来看一下如何声明一个数组: 数据类型 数组名称[长度]; 数组只声明也不行啊,看一下数组是如何初始化的。说到初始化,C语言中的数组初始化是有三种形式的
阅读全文
摘要:自创函数 C语言提供了大量的库函数: 比如 stdio.h 提供输出函数 自定义函数的一般形式: 注意: [] 包含的内容可以省略,数据类型说明省略,默认是 int 类型函数; 参数省略表示该函数是无参函数,参数不省略表示该函数是有参函数; 函数名称遵循标识符命名规范; 自定义函数尽量放在 main
阅读全文
摘要:循环结构之while循环 反复不停的执行某个动作就是江湖人称的循环 。 C语言中有三种循环结构,先看一下C语言while循环的结构 其中表达式表示循环条件,执行代码块为循环体。 while语句的语义是:计算表达式的值,当值为真(非0)时, 执行循环体代码块。 while语句中的表达式一般是关系表达或
阅读全文
摘要:运算符号 C语言中运算符: ※ 算术运算符 ※ 赋值运算符 ※ 关系运算符 ※ 逻辑运算符 ※ 三目运算符 算术运算符 c语言基本运算符: 除法运算中注意: 如果相除的两个数都是整数的话,则结果也为整数,小数部分省略,如 8/3 = 2; 而两数中有一个为小数,结果则为小数,如:9.0/2 = 4.
阅读全文
摘要:格式化输出语句 格式化输出语句,也可以说是占位输出,是将各种类型的数据按照格式化后的类型及指定的位置从计算机上显示。 其格式为: printf("输出格式符",输出项); 注意:格式符的个数要与变量、常量或者表达式的个数一一对应 格式化控制串:包含两种信息 %[修饰符]格式字符,用于指定输出 普通字
阅读全文
摘要:首先来看几个问题: 1. #include <>和#include“”的区别: <>:引用的是编辑器的类库路径里面的头文件 "" :引用的是个人程序目录下的相对路径中的头文件 C的常用库 其他 #include<stdio.h>:定义基本输入/输出函数 #include<string.h>:定义字符
阅读全文
摘要:第一个C语言程序 hello, world 尽管这个练习很简单,但对于初学语言的人来说,它仍然可能成为一大障碍,因为要实 现这个目的,我们首先必须编写程序文本,然后成功地运行编译,并加载、运行,最后输出 到某个地方。掌握了这些操作细节以后,其它事情就比较容易了。 注:在最新的C标准中,main函数前
阅读全文