![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Linux
懿云丶
学杂不如学精。
若想学杂,定阶段,阶段时间最少三个月。
展开
-
Linux_进程间的通讯方式
进程间通信(IPC)1:管道(无名管道、有名管道),单向,数据先进先出。2:信号,进程间异步通信,一般通知机制都用信号(一个进程满足某种条件该让另一个进程做某件事情)。3:共享内存,数据不区分类型和先后顺序,只要将数据发送给其他进程就可以,是效率最高的进程间通信方式。但是共享内存本身没有同步机制,必须结合信号量来实现同步。4:信号量,主要来实现进程间的同步,也可以实现互斥。5:...原创 2018-12-02 16:25:02 · 251 阅读 · 2 评论 -
Linux_Makefile模板
SRC = ${wildcard ./src/*.c} SRC += ${wildcard ./*.c} CC = gccCFLAGS = -gmain:$(SRC) $(CC) $(CFLASS) -o $@$^ .PHONE: cleanclean: $(RM) -f *.o main原创 2018-12-03 17:13:25 · 247 阅读 · 0 评论 -
Linux_网络编程
网络协议:网络中各个主机或终端接入互联网锁必须遵循的一种规则。 一些代码()网络协议模型:OSI(Open System Interconnection)模型七层模型:物理层(网卡)、数据链路层(网卡驱动)、网络层、传输层、会话层、表示层、应用层TCP/IP模型网络接口与物理层:通过物理接口发送或接收数据。 MAC地址...原创 2018-12-06 15:18:54 · 92 阅读 · 0 评论 -
Linux_线程
1.进程是资源管理的最小单位,线程是程序执行的最小单位。2.一个进程可以创建多个线程,而这些线程共享该进程资源。3.线程必须依赖于进程,线程不可以独立存在。4.一个线程执行所需要的资源远小于进程。5.线程和进程可以并发执行,并且线程和进程共同竞争CPU。 一、单线程编程在编译有线程代码时,必须显式的调用线程库:gcc xxx.c -o xxx -lpthread线程...原创 2018-12-03 17:05:16 · 79 阅读 · 0 评论 -
Linux_线程池
线程池基本原理:在传统服务器中,常是有一个总的监听线程听有没有新的用户连接服务器,每当有一个新的用户进入,服务器就开启一个新的线程用户来处理这个用户的数据包,这个线程只服务于这个用户,当用户与服务器关闭连接以后,服务器端酒销毁这个线程,然而频繁地开辟与销毁线程极大的占用了系统的资源。线程池提供了一个解决外部大量用户与服务器有限资源的矛盾,就是在程序开始时开辟一些线程,线程的数目是固定的,他们独...原创 2018-12-05 15:38:57 · 110 阅读 · 0 评论 -
Linux_线程的条件变量
#include <stdio.h>#include <stdlib.h>#include <pthread.h>#define PTHREAD_NUM 10static int global = 0;static pthread_mutex_t m;static pthread_cond_t v;void *count_times(voi...原创 2018-12-05 12:43:01 · 95 阅读 · 0 评论 -
Linux_线程的互斥锁
功能:1、使多个线程可以互斥的访问共享资源 2、保护一段重要的代码,是这段代码在执行过程中,不会被打断。 互斥锁的操作:1、定义一把互斥锁 pthread_mutex_t mutex;2、对互斥锁进行初始化 1)静态初始化 pthread_mutex_t mutex = PTHREAD_MUTEX_INITALIZER; ...原创 2018-12-05 11:58:56 · 198 阅读 · 0 评论 -
Linux_线程的属性-分离属性
线程有很多的属性:如线程的分离属性,线程的栈,线程的优先级...一个进程,当执行pthread_create()函数,等待收尸pthread_join()时,进程会阻塞,为了防止进程阻塞,采用分离线程的方式。特点:当线程结束,不需要进程收尸。 创建分离线程:pthread_attr_t attr; //线程的属性...原创 2018-12-05 11:25:26 · 737 阅读 · 0 评论 -
Linux_判断进程是否正常结束
一般判断进程用到三个函数status的值即为exit(a)函数里的a值,代码中列举进程正常结束。#include <stdio.h>#include <fcntl.h>#include <stdlib.h>int main(){ pid_t pid; int status; //查看子进程状态 pid = fo...原创 2018-12-01 18:21:15 · 2966 阅读 · 0 评论 -
Linux_进程扇、进程链
进程扇:#include <stdio.h>#include <fcntl.h>int main(void){ pid_t pid; int i = 0; for(i; i<10;i++) { pid = fork(); if(pid == 0) { ...原创 2018-12-01 15:50:47 · 302 阅读 · 0 评论 -
Linux_孤儿进程
孤儿进程,由internet进程进行收尸。收尸都是父进程给子进程收尸孤儿进程,目的:避免父进程在为子进程收尸的时候阻塞,提高进程执行效率。孤儿进程模型:#include <stdio.h>#include <fcntl.h>int main(void){ pid_t pid; long i = 10000000; pid = ...原创 2018-12-01 15:44:37 · 166 阅读 · 0 评论 -
Linux_兄弟进程
兄弟进程必须要有exit(0),否则就成了孙子进程。#include <stdio.h>int main(void){ //system("touch xxx.dat"); //可以直接在当前目录创建一个xxx.dat文件 pid_t pid; pid = fork(); if(pid == 0) { ...原创 2018-12-01 14:59:48 · 1576 阅读 · 0 评论 -
Linux_exec
#include <stdio.h>#include <stdlib.h>#include <unistd.h>int main(void){ pid_t pid; pid = fork(); if(0 == pid) { execl("/home/me/hello","./hello",NULL);...原创 2018-12-01 14:06:11 · 77 阅读 · 0 评论 -
Linux_vim
vim安装:sudo apt-get install vim-gtk修改 vi /etc/vim/vimrc 文件, 在后面加上以下内容,可实现,语法高亮, 自动缩进, 搜索高亮等功能。 set autowrite set syntax=on set autoindent //当前行自动应用到下一行 set cindent set smartindent set ...原创 2018-12-01 13:45:03 · 109 阅读 · 0 评论 -
Linux_客户端与服务端
三次握手:server.c#include <stdio.h>#include <stdlib.h>#include <unistd.h>#include <sys/socket.h>#include <string.h>#include <arpa/inet.h>void myperror(int...原创 2018-12-06 17:07:06 · 605 阅读 · 0 评论