![](https://img-blog.csdnimg.cn/20190927151132530.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Linux
第一遍学习
永恒sss
这个作者很懒,什么都没留下…
展开
-
新安装的linux部分功能安装
linux原创 2023-03-03 23:28:16 · 124 阅读 · 0 评论 -
生产者和消费者-代码
#include<stdio.h>#include<stdlib.h>#include<unistd.h>#include<string.h>#include<pthread.h>#include<semaphore.h>#define BUFF_MAX 10#define SC_NUM 2#define XF_NUM 3int buff[BUFF_MAX];int in=0;int out=0;sem_原创 2021-12-01 22:33:35 · 557 阅读 · 0 评论 -
udp实现客户端服务器
服务器端:#include<stdio.h>#include<assert.h>#include<unistd.h>#include<stdlib.h>#include<string.h>#include<sys/socket.h>#include<netinet/in.h>#include<arpa/inet.h>//服务器端int main(){ int sockfd=socke原创 2021-11-14 16:33:38 · 2481 阅读 · 0 评论 -
tcp服务器和客户端代码实现
服务器编程流程:int socket() 创建一个socket返回值:出错返回-1 成功返回socket文件描述符int bind() 命名绑定,确定IP+port 只有在命名之后客户端才知道如何连接它返回值:失败返回-1 成功返回0进行绑定步骤时要进行主机字节序和网络字节序的转换和IP地址点分十进制的字符串类型和整型值之间的转换int listen() 启动监听 ,socket命名绑定了之后还不能马上接受客户的链接,需要先启动监听来创建一个监听队列用于存放待处理的客户链接,连接队列的大小最原创 2021-11-14 15:21:55 · 2198 阅读 · 0 评论 -
进程间的通讯
进程间的通讯IPC:管道,信号量,共享内存,消息队列,套接字管道(有名管道和无名管道)有名管道有名管道可以在任意两个进程之间通信有名管道的创建:◼ 命令创建: mkfifo FIFO◼ 系统调用创建...原创 2021-08-21 18:58:12 · 66 阅读 · 0 评论 -
信号量:三个进程 a、b、c 分别输入“A”、“B”、“C”,要求输出结果必须是“ABCABCABC…”
sem.h#include<stdio.h>#include<stdlib.h>#include<unistd.h>#include<sys/sem.h>#include<string.h>union semun{ int val[3];};void sem_init();int sem_p0();int sem_p1();int sem_p2();int sem_v0();int sem_v1();int原创 2021-08-21 14:44:26 · 394 阅读 · 1 评论 -
linux命令源码
pwd#include<stdio.h>#include<stdlib.h>#include<unistd.h>int main(){ char path[256]={0}; getcwd(path,256); printf("%s\n",path);}ls#include<stdio.h>#include<stdlib.h>#include<unistd.h>#include<s原创 2021-08-16 21:07:17 · 745 阅读 · 0 评论 -
mybash
#include<stdio.h>#include<stdlib.h>#include<unistd.h>#include<string.h>#include<sys/wait.h>#include<pwd.h>//获取用户名#define PATH "/home/stu/c215/mybin/"#define MAX_ARG 10void print_info(){ //printf("\033[1;32原创 2021-08-16 21:04:50 · 85 阅读 · 0 评论 -
信号的使用
1、信号的基本概念信号是系统响应某个条件而产生的事件,进程接收到信号会执行相应的操作。与信号有关的系统调用在“signal.h”头文件中有声明2、修改信号的响应方式 – signal()三种响应方式3、发送信号 – kill()kill() 可以向指定的进程发送指定的信号:int kill(pid_t pid, int sig);pid > 0 指定将信号发送个那个进程pid == 0 信号被发送到和当前进程在同一个进程组的进程pid == -1 将信号发送给系统上有权限发送的所原创 2021-08-15 18:26:11 · 182 阅读 · 0 评论 -
替换进程exec
#include<stdio.h>#include<stdlib.h>#include<unistd.h>#include<string.h>int main(int argc,char*aargv[],char*envp){ char*myargv[10]={"ps","-f"}; printf("main run pid=%d\n",getpid()); //execl("/usr/bin/ps","ps","-f",(原创 2021-08-15 17:21:28 · 56 阅读 · 0 评论 -
复制文件.
#include<stdio.h>#include<stdlib.h>#include<assert.h>#include<string.h>#include<unistd.h>#include<fcntl.h>int main(int argc,char* argv[]){ if(argc!=3) { printf("arg err\n"); return 0原创 2021-08-14 17:33:46 · 98 阅读 · 0 评论 -
linux文件操作
#include<stdio.h> #include<stdlib.h> #include<unistd.h> #include<assert.h> #include<string.h> #include<fcntl.h> int main() { int fd =open("a.txt",O_RDONLY);//读出文件内容 assert( fd != -...原创 2021-08-14 17:31:20 · 42 阅读 · 0 评论 -
僵死进程及处理方法
(1) 僵死进程概念:子进程先于父进程结束,父进程没有调用 wait 获取子进程退出码。(2) 如何处理僵死进程:父进程通过调用 wait()完成。(3) Init 进程收养孤儿进程(即1号进程)当子进程结束后,并没有消失,仍然可以在系统中观测到,但此时子进程其实已经运行结束了,此时子进程的状态被称为僵死状态,系统把处于该类状态的进程称为僵死进程。 如果父进程先结束,子进程最后是不会变为僵死进程的。...原创 2021-08-14 15:07:19 · 613 阅读 · 0 评论 -
Linux 进程复制与替换
Linux 进程复制与替换1、printf 函数输出问题printf 函数并不会直接将数据输出到屏幕,而是先放到缓冲区中,只有一下三种情况满足,才会输出到屏幕。1) 缓冲区满2) 强制刷新缓冲区 fflush3) 程序结束时#include <stdio.h> #include <stdlib.h>#include <unistd.h> int main(int argc, char* argv[],char* envp[]) { printf("原创 2021-08-12 21:27:55 · 47 阅读 · 0 评论 -
linux关于fork面试题
下列程序输出几个“A”?代码一:int main(int argc, char* argv[],char* envp[]){ int i = 0; for( ; i < 2; i++ ) { fork(); printf("A\n"); } exit(0); }代码二: int main(int argc, char* argv[],char* envp[]) { int i = 0;原创 2021-08-12 21:12:21 · 97 阅读 · 0 评论 -
Linux计算机基础概论
计算机的基本组成1.1 计算机组成五大部件(1) 运算器 :也叫算数逻辑单元,完成对数据的各种常规运算,如加减乘除,也包括逻辑运算,移位,比较等。(2) 控制器 :它是整个计算机系统的控制中心,它指挥计算机各部分协调地工作,保证计算机按照预先规定的目标和步骤有条不紊地进行操作及处理。(3) 存储器 :存储程序和各种数据。(4) 输入设备 :把人所熟悉的信息如,图片,声音,文字,转换为计算机能够识别的信息存储起来。(5) 输出设备 : 把计算机机能识别的信息转换为人能识别的信息,进行呈现。原创 2021-08-11 18:55:20 · 107 阅读 · 0 评论 -
Linux基本命令
1. 常见目录说明/bin 存放常用命令(即二进制可执行程序)/etc 存放系统配置文件/home 所有普通用户的家目录/root 管理员用户的家目录/usr 存放系统应用程序及文档/proc 虚拟文件系统目录,以进程为单位存储内存的映射/dev 存放设备文件/mnt 临时挂载点/lib 存放库文件/boot 系统内核及启动有关的文件/tmp 存放各种临时文件,是所有用户均可访问的地点/var 存放系统运行中常改变的文件, 如系统日志2、绝对路径与相对路径绝对路径: 是从系统根目原创 2021-07-22 21:11:14 · 348 阅读 · 0 评论