Linux
三少爷的剑!
19年毕业,至今软件行业工作六年。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
经典面试题:在游览器中输入url(网址)会发生什么
1.进行域名解析(1.查看游览器缓存,2.查看本地host文件3.请求本地DNS服务器4.请求DNS根目录服务器5.请求DNS顶级域名服务器6.。。。(这一步,当找到这个域名的IP地址时返回结果即可,无需在往下寻找域名服务器))2.根据请求信息,组织http请求数据。3.搭建http客户端,将组织好的请求数据发往域名解析得到的服务器4.得到响应后,根据http格式进行解析响应得到的数据,进行网页渲染。...原创 2020-08-11 23:23:40 · 4543 阅读 · 0 评论 -
udp通信的实现
用户端:#include<stdio.h>#include<string.h>#include<unistd.h>#include<stdlib.h>#include<sys/socket.h>#include<netinet/in.h>#include<arpa/inet.h>int main(int argc,char *argv[]){ if(argc!=3){ printf("传参错误原创 2020-08-05 00:50:16 · 4043 阅读 · 0 评论 -
生产者与消费者场景的循环队列,用信号量实现(信号量)
#include<cstdio>#include<vector>#include<pthread.h>#include<semaphore.h>#define MAX_QUEUE 5class RingQueue{ public: RingQueue(int maxq=MAX_QUEUE):_arry(maxq),_capacity(maxq),_write_step(0),_read_step(0){ sem_init(&am.原创 2020-08-01 23:41:07 · 4388 阅读 · 0 评论 -
Linux下的生产者和消费者场景的代码实现(通过同步)
#include<iostream>#include<pthread.h>#include<queue>#define MAX_QUEUE 5class BlockQueue{ private: std::queue<int>_queue; int _capacity; pthread_mutex_t _mutex; pthread_cond_t consumer_cond; pthread_cond_t produc.原创 2020-07-31 20:38:10 · 4121 阅读 · 0 评论 -
命名管道的实现代码
命名管道需要两个终端,一个用于写数据进管道,一个用于在管道中读数据写数据代码:#include<stdio.h>#include<unistd.h>#include<fcntl.h>#include<stdlib.h>#include<string.h>#include<sys/stat.h>#include<errno.h>int main(){ umask(0); int ret=原创 2020-07-26 20:11:39 · 4097 阅读 · 0 评论 -
用IPC的管道实现Linux下命令行的管道连接符(Linux基础回顾)
写一个程序,实现命令行管道符的实现:示例:ps -ef | grep ssh此程序用到IPC中的管道,进程控制里的创建子程序和程序替换知识,和一些基础IO知识,比如重定向等,较为简单。以下是我写的代码:#include<stdio.h>#include<unistd.h>#include<stdlib.h>#include<sys/wait.h>int main(){ int pipefd[2]={-1}; if(pipe(pipe原创 2020-07-24 20:24:58 · 4097 阅读 · 0 评论 -
Linux下的shell命令程序的简单实现(Linux基础回顾)
通过进程等待,程序替换,以及子进程创建等知识,已经可以写出一个类似于shell命令行的程序。总共有四步:1.接受标准命令,并把命令放入字符串2.解析命令,把一个个命令解析成字符串放入运行参数中3.创建子程序,进行程序替换。4.进程等待#include<stdio.h>#include<unistd.h>#include<stdlib.h>#include<string.h>int main(){ while(1) {原创 2020-07-20 05:26:03 · 4153 阅读 · 0 评论 -
什么是僵尸进程?什么是孤儿进程(精灵进程)(Linux操作系统)
僵尸进程:处于僵死状态的进程,指的是进程已经退出不在运行,但资源没有完全释放。僵尸进程的产生原因:子进程先于父进程退出,但是父进程没有关注子进程的退出状态,因此子进程成为僵尸状态为什么子进程不能释放资源:因为子进程要保存自己所退出的原因给父进程看僵尸进程的危害:资源泄露,一个用户所能创建的进程数量有限,资源不回收会占据内存资源处理方法:退出父进程,但这只是权宜之计,总不能子进程退出就必须要父进程退出父进程进程等待...原创 2020-07-16 06:07:25 · 4542 阅读 · 1 评论 -
vi编辑时出现E325:ATTENTION(简单易懂,快速解决问题)
当出现这个问题时,是因为由于在编辑该文件的时候异常退出了,因为vim在编辑文件时会创建一个交换文件swap file以保证文件的安全性。要想解决这个问题,1.找到开头前两行示例如下:E325: ATTENTIONFound a swap file by the name "/.local/share/nvim/swap//%home%dev%xuexi%tool%main.c.swp"(tips:复制标粗体的地方)2.找出name 后面的文件路径以及名称,复制你的swap文件路径以及名原创 2020-07-13 08:31:03 · 47378 阅读 · 9 评论 -
用户在使用Linux系统中如何快速使用root管理员权限操作命令(sudo 命令及使用要求)
在Linux系统中编写代码中,我们常常遇到普通用户不能操作的命令和指令,必须得切换到root管理员下进行操作才可以,即:su root,但是在你用完后又得切换到普通用户,否则一直使用root权限可能会因为你的不当操作而造成一些无法挽回的措施,这个不断切换的过程是繁琐的,而且如果你忘记了切换,又造成了不当操作,后果将是难以忘记的。下面我将介绍不需要切换到root用户的也可以运行需要root权限的命令:即给需要root权限的句子前加上sudo命令,示例:sudo yum install lrzsz.原创 2020-07-13 07:04:16 · 4778 阅读 · 0 评论 -
Linux系统的文件,用户权限以及沾滞位的使用(基础回顾)
Linux操作系统的操作的权限:管理员-root;普通用户(自定义)文件的权限:1.对用户的划分:文件所有者(u)/文件所属组(g)/其他用户(o)2.对操作的划分:可读(r)/可写(w)/可执行(x)rwxrwxrwx----表示所有用户都可读可写可执行,前三个字符表示文件所有者(u)的对文件的操作权限中间三个字符表示对文件所属组对文件的操作权限,最后三个字符表示对其他用户对文件的操作权限,其中,若哪个成员对文件没有这个操作权限。则用“-”代替对应的字符,表示这个用户没有这个权限。原创 2020-07-13 05:48:19 · 4259 阅读 · 0 评论 -
Linux下的压缩解压缩打包文件命令和操作(Linux操作系统基础回顾)
Linux压缩和解压缩必须对应相应的命令:zip/unzip:zip格式的压缩解压命令zip 压缩后的文件名称(你想怎么定义这个名字都可以)后面跟上你所要压缩的文件名压缩命令示例:zip passwd.zip passwd zhang.txt(压缩命令)解压缩示例unzip passwd.zipgzip/gunzip:gzip格式的压缩解压缩命令压缩命令后面跟上你所要压缩的文件名压缩:gzip passwd zhang.txt解压缩:...原创 2020-07-11 20:29:20 · 4408 阅读 · 0 评论
分享