摘要:1、什么是脚本 是一个包含一些列命令序列的文本文件。当运行这个脚本文件时,文件中包含的命令序列将得到自动执行。 基本结构:#!指明后面用什么解析器来执行。 由解析器和命令组成 变量:shell脚本允许用户设置和实用自己的变量,变量可以使数字或字符串,用户无需指定其类型,也无需在使用前定义。 注意:在
阅读全文
摘要:1、什么事守护进程 守护进程,也就是通常说的Daemon(精灵)是Linux中的一种服务进程。它的特点是: 不占用控制终端(后台运行) 独立于控制终端(有没有对应的tty使用命令ps -aux查看) 周期性运行 例如:smbd 注意l:在运行可执行程序的时候,后面加上&,意为后台运行。 2、守护进程
阅读全文
摘要:为什么要并发服务器 要让服务器高效同时处理各个请求。 a、采用多进程来处理(也可以多线程、或者线程池) tcp_server.c
阅读全文
摘要:1、编程模型函数化 1)发送数据 Sendto:发送数据 ssize_t sendto(int sockfd,const void *buf,size_t nbytes,int flags,const struct sockaddr *destaddr,socklen_t destlen); 头文件
阅读全文
摘要:1、编程模型函数化 函数学习 1)创建套接字 函数名:socket 函数原型:Int socket(int domain,int type,int protocol); 函数功能:创建套接字 所属头文件:<sys/types.h>、<sys/socket.h> 返回值:成功:返回对应于新套接字的文件
阅读全文
摘要:1、编程模型 Linux网络编程模型是基于socket的编程模型
阅读全文
摘要:什么是网络协议 a、有什么样的规则;b、该网络协议包的格式 用软件wireshark来抓以太网包!!!
阅读全文
摘要:1、基本概念 多个线程按照规定的顺序来执行,即为线程同步。 A同学:扫5次地 B同学:拖地 sync.c 2、条件变量 1)初始化 pthread_cond_t cond_ready=PTHREAD_COND_INITIALIZER; 2)等待条件成熟 pthread_cond_wait(&cond
阅读全文
摘要:1、基本概念 a、线程就是“轻量级”的进程 b、线程与创建它的进程共享代码段和数据段 c、线程拥有自己的独立的栈。 2、函数学习 1)创建线程 函数名:pthread_create 函数原型:Int pthread_create(pthread_t *thread,const pthread_att
阅读全文
摘要:1、基本概念 消息队列就是一个消息的链表。而一条消息则可看作一个记录,具有特定的格式。进程可以向其中按照一定的规则添加新消息;另一些进程则可以从消息队列中读走消息。也是作为IPC进程通信之一。 2、函数学习 1)创建或打开消息队列 函数名:msgget 函数原型:Int msgget(key_t k
阅读全文
摘要:1、基本概念 共享内存是IPC机制中的一种,它允许两个不相关的进程访问同一段内存,这是传递数据的一种非常有效地方式。 2、函数学习 1)创建和打开共享内存: 函数名:shmget 函数原型:Int shmget(key_t key,size_t size,int shmflg); 头文件:<sys/
阅读全文
摘要:进程同步:一组并发进程进行相互合作、互相等待,使得各进程按一定的顺序执行的过程。 生产者和消费者问题 A生产产品,B取走产品, 让信号量初值为0,生产者不用获取信号量,但要释放信号量1. 消费者要获取信号量,但不用释放信号量0. 生产者producer.c customer.c 先执行: ./pro
阅读全文
摘要:信号量同步的概念: 一组并发进程进行相互合作、相互等待,使得各进程按一定的顺序执行的过程称为进程间的同步。 customer.c product.c 运行生产者 运行消费者:
阅读全文
摘要:在程序中利用信号量互斥来解决公示板问题 背景知识 1、信号灯的概念 信号灯,又被称为信号量(semaphore),是IPC(进程间通信)的方式之一。它可以用来保证两个或多个关键代码段不被多个进程并发调用。每个信号灯都有个semval,用于记录信号灯的值。在进入一个关键代码段之前,进程必须获取一个信号
阅读全文
摘要:编写两个应用程序,利用两个进程进行信号通信 1、信号的概念:是一种进程间通信机制,它给应用程序提供一种异步的软件中断,使应用程序有机会接受其他程序或终端发送的命令(即信号)。应用程序收到信号后,有三种处理方式:忽略,默认,或捕捉。进程收到一个信号后,会检查对该信号的处理机制。如果是SIG_IGN,就
阅读全文
摘要:创建2个进程,在A进程中创建一个有名管道,并向其写入数据,通过B进程从有名管道中读出数据。 有名管道又称命名管道,可用于无亲缘关系的进程之间通信,在某些特点上类似于文件。 用法:通过mkfifo创建有名管道,之后就可以想操作普通文件通过open()、close()、write()、以及read()对
阅读全文
摘要:创建无名管道用于父子间进程通信。 1、无名管道概念:无名管道又称pipe,是Linux所支持的IPC方式的一种,它具有以下特点: 1)只能用于具有血缘关系的进程之间。 2)属于半双工的通信模式,具有固定的读端和写端 3)是一种特殊的文件,存在于内存中,可通过read、write对其操作。 2、无名管
阅读全文
摘要:头文件:#include<stdlib.h> 函数原型:int system(const char *command) 参数说明:command被执行的命令,字符串格式 返回值:成功则返回一个状态值,失败返回-1. 总结:执行system函数会新创建出一个进程去执行shell命令。
阅读全文
摘要:函数原型:void exit(int status) 参数说明:退出状态。 函数原型:pid_t wait(int *status) 头文件:#include<sys/types.h>,#include<sys/wait.h> 参数说明:status记录子进程的退出状态 返回值:成功则返回终止的子进
阅读全文
摘要:子、父进程共享数据段与堆栈段 函数原型:pid_t vfork(void) 返回值:子进程中返回0,父进程中返回子进程ID,出错返回-1. 注意: vfork创建的进程是按先子进程后父进程的顺序执行的。在调用exec或exit之前与父进程数据是共享的,在它调用exec或exit之后父进程才可能被调度
阅读全文