c语言
文章平均质量分 59
LI大大
爱好广泛
展开
-
c语言知识汇总
由于格式问题只能发图片格式 一、关键字 在C99下有32个关键字: 1.数据类型关键字 (1)基本数据类型(5个) (2)类型修饰关键字(4个) (3)复杂类型关键字(5个) (4)存储级别关键字(6个) 2.流程控制关键字 二、数据类型及范围 三、C语言中重要的语句 (1)循环语句 (2)判断语句 (3)选择语句 四、C语言中的输出格原创 2017-11-07 17:50:04 · 357 阅读 · 0 评论 -
TCP网络协议
TCP全称为“传输控制协议”。TCP是面向连接,保证可靠性,面向字节流的一种网络传输协议。TCP协议段格式 1.源 / 目的 端口号: 表示数据是从哪个进程来,到哪个进程去。 2.32位序号与确认序号: TCP会话的每一端都包含一个32位(bit)的序列号,该序列号被用来跟踪该端发送的数据量。每一个包中都包含序列号,在接收端则通过确认号用来通知发送端数据成功接收。 3.4位T...原创 2018-05-30 18:16:11 · 458 阅读 · 0 评论 -
网络套接字的应用
在介绍套接字前,我们需要了解什么是IP地址,什么是端口号port:1.IP地址 ip协议有两个版本,IPv4 和 IPv6 (一般情况下使用IPv4); IPv4协议占32个bit;IPv6占128个bit是IPv4的4倍; 1) IP地址是在IP协议中用来标识网络中不同主机的地址; 2) 对于IPv4来说,IP地址是一个4字节,32位的整数...原创 2018-05-29 17:03:57 · 2016 阅读 · 0 评论 -
信号量的应用
信号量 1、信号量和P、V原语信号量和P、V原语由迪杰斯特拉提出互斥:P、V在同一个进程中 同步:P、V在不同进程中信号量值含义: (1)S>0: S表示可用资源的个数。 (2)S=0:表示无可用资源,无等待进程。 (3)S<0: |S|表示等待队列中进程个数。P原语:P(s){ s.value = s.value--; if(...原创 2018-05-04 21:49:22 · 816 阅读 · 0 评论 -
读者写者模型
读者写者模型读者与写者之间的关系: 读者与读者:无关系 写者与写者:互斥 读者与写者:互斥注:写独占,读共享,写锁优先级高。读写锁接口://1.初始化int pthread_rwlock_init(pthread_rwlock_t *restrict rwlock,const pthread_rwlockattr_t *restrict attr);//2.销毁int...原创 2018-05-01 23:23:18 · 226 阅读 · 0 评论 -
生产者消费者模型
生产者消费者模型一个交易场所,两个对象,三种关系。消费者与消费者:互斥 生产者与生产者:互斥 生产者与消费者:同步且互斥下面是一个三个生产者与三个消费者的模型:#include<stdio.h>#include<pthread.h>#include<unistd.h>#include<stdlib.h>#define C...原创 2018-05-01 22:53:10 · 166 阅读 · 0 评论 -
【Linux】线程同步与互斥
线程同步与互斥1、mutex(互斥量)(1)初始化互斥量第一种方法:静态分配 pthread_mutex_t mutex=PTHREAD_MUTEX_INITIALIZER第二种方法 :动态分配 int pthread_mutex_init(pthread_mutex_t* restrict mutex,const pthread_mutexattr_t *restrict a...原创 2018-05-01 22:42:33 · 169 阅读 · 0 评论 -
守护进程
守护进程1、守护进程也称精灵进程(daemon),是运行在后台的一种特殊进程。它独立于控制终端并且周期性的执行某种任务或等待处理某些发生的事件。Linux的大多数服务器就是用守护进程实现的。比如,ftp服务器,ssh服务器,Web服务器httpd等。同时,守护进程完成许多系统任务,比如,作业规划进程crond等。2、 Linux系统启动时会启动很多系统服务进程,这些系统服务进程没有控制终端...原创 2018-04-26 22:28:07 · 274 阅读 · 0 评论 -
【Linux】操作系统之线程
进程博客:https://blog.csdn.net/lz201788/article/details/79679380线程在一个程序里的一个执行路线就叫做线程(thread)。更准确的定义是:线程是一个进程内部的控制序列。一切进程至少都有一个执行线程。进程与线程: 1.进程是资源竞争的基本单位。 2.线程是程序执行的最小单位。 3.线程共享进程数据,但也拥有自己的一部分数据。 ...原创 2018-05-01 22:05:17 · 180 阅读 · 0 评论 -
【Linux】消息队列
一、消息队列1.消息队列提供了一个从一个进程向另外一个进程发送一块数据的方法。 2.每个数据块都被认为是有一个类型,接受者进程的数据块可以有不同的类型值。 3.消息队列也有管道一样的不足,就是每个消息的最大长度是有上限的(MSGMAX),每个消息队列的总的字节数是有上限的(MSGMNB),系统上消息队列的总数也有一个上限(MSGMNI)。 IPC对象数据结构: 消息队列结构...原创 2018-04-06 22:07:59 · 352 阅读 · 0 评论 -
一个简易的shell
shell本质上就是将进程程序替换替换原理:用fork创建子进程后执行的是和父进程相同的程序(但有可能执行不同的代码分支),子进程往往要调用一种exec函数以执行另一个程序。当进程调用一种exec函数时,该进程的用户空间代码和数据完全被新程序替换,从新程序的启动例程开始执行。调用exec并不创建新进程,所以调用exec前后该进程的id并未改变。 替换函数:有六种以exec开头的...原创 2018-04-12 22:26:27 · 810 阅读 · 0 评论 -
【Linux】进程控制
一、进程的创建 有两个函数(fork / vfork)可以在已存在的进程中创建一个新进程。新进程为子进程,原来的进程为父进程。子进程就是将父进程万全的拷贝了一份。1.fork#include<unistd.h>pid_t fork( );返回值:子进程返回0,父进程返回子进程的进程id,出错返回-1。fork函数对父进程的拷贝是深拷贝(写实拷贝),有自己独立的空...原创 2018-04-12 18:51:28 · 221 阅读 · 0 评论 -
【Linux】C语言实现进程间通信
首先创建一个server.c文件与client.c文件,使用Makefile将这两个文件管理起来。 Makefile文件:.PHONY:allall:server clientserver:server.c gcc $^ -o $@client:client.c gcc $^ -o $@.PHONY:cleanclean: rm server ...原创 2018-03-31 12:59:49 · 2050 阅读 · 0 评论 -
【Linux】了解进程
【进程基本概念: (1)课本概念:程序的一个执行实例,正在执行的程序等。 (2)内核观点:担当分配系统资源(CPU时间、内存)的实体。操作系统在管理进程时,先将其描述起来,再对其组织管理。 【描述进程-PCB: (1)进程信息被放在一个叫做进程控制块的数据结构中,可以理解为进程属性的集合。 (2)课本上称之为PCB(process control block)(进程控制块),Linu...原创 2018-03-24 23:48:07 · 228 阅读 · 0 评论 -
基础I/O
基础I/O,也就是输入/输出。下面介绍一些常用的文件操作函数。 1. fopen( ) / fclose( ) 这两个函数每次都是结伴出现,用fopen打开文件,用close关闭文件。 在结尾位置将文件关闭 fclose(fp); #include<stdio.h>#include<string.h>int main(){原创 2018-03-22 21:36:15 · 485 阅读 · 0 评论 -
UDP网络协议
1.UDP协议段 (1)16位UDP长度: 表示整个数据报(UDP首部+UDP数据)的最大长度; (2)16位检验和: 如果检验和出错,直接丢弃该包;2.UDP的特点 UDP传输过程类似于寄信. (1)无连接:直到对端的IP和端口号就可以直接传输,不需要建立连接。 (2)不可靠:没有确认机制,没有重传机制,如果因为网络故障该段无法发到对方,UDP协议层也不会给应用层返...原创 2018-05-30 20:24:22 · 585 阅读 · 0 评论