linux学习
qq_45833409
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
linux多线程(一)
多线程肤浅概念多进程是资源管控的最小单位那么多线程是资源调度的最小单位,多进程就像一个大厦有着所有资源那么多线程就是大厦中的那些办公室调用大厦的资源来进行工作。linux提供了关于线程创建,控制,设置属性的API./*多线程句柄数据类型*/pthread_t thread;/*创建线程并且指定运行函数*/int pthread_create(pthread_t &thread, const pthread_attr_t *attr, (void*)(*rth)(void*), void原创 2021-03-21 10:59:28 · 172 阅读 · 0 评论 -
linux多线程(互斥锁)
互斥锁当多个线程想要对同一个资源进行操作的时候,为了使得不出现脏读的情况,要用互斥锁来规定线程的先后顺序。互斥锁和信号量的作用类似。互斥锁的API/*锁的数据类型*/pthread_mutex_t mutes;/*锁的初始化*/int pthread_mutex_init(pthread_mutex_t*, const pthread_mutexattr_t*);/*锁的销毁函数*/int pthread_mutex_destory(pthread原创 2021-03-16 20:47:27 · 192 阅读 · 0 评论 -
linux多进程(pipe)(二)
pipe函数int pipe( int fd[2]); 在创建子进之前,可以用pipe函数创建一个管道进行进程之间的交互。 pipe函数传入一个容量为2的数组,fd[1]只能写入,fd[0]只能读。案例#include <unistd.h> #include <signal.h> #include <fcntl.h>#include <sys/syslog.h>#include <sys/param.h> #include原创 2021-03-13 15:27:39 · 356 阅读 · 0 评论 -
linux多进程(信号量)(三)
信号量概念当多个进程对一个资源进行访问的时候,我们要对这几个进程进行控制。我们要考虑到他们的同步问题,就需要控制当某个进程占用资源的时候其他进程不能进行访问,信号量就被发明了。信号量只有两个操作:等待和信号,设有一信号量为SV,分别用P和V来代替两个操作。信号量的值是用二进制来表示,只有1和0,就是可执行和不可。如果当信号量的值为1时(可执行),如果此时A进入到P(SV)操作那么A就进入进行关键代码段,此时B再执行P(SV)的话就会被挂起直到A离开关键代码段才将B唤醒进入关键代码段,此时其他进原创 2021-03-13 15:27:26 · 303 阅读 · 0 评论 -
linux多进程gdb调试
代码#include <unistd.h> #include <signal.h> #include <fcntl.h>#include <sys/syslog.h>#include <sys/param.h> #include <sys/types.h> #include <sys/stat.h> #include <stdio.h>#include <stdlib.h>int原创 2021-03-13 15:27:12 · 192 阅读 · 0 评论 -
linux多进程(一)
进程的基本概念进程是LInux中管理事务的基本单元 代表资源的总合进程的属性进程号/*获得该进程进程号*/pid_t getpid();/*获得该进程的父进程号*/pid_t getppid();用linux命令来获取进程号ps -o <format>ps -o pidps -ef /*查看所以进程*/进程组:一个进程创建的所有子进程的集合是一个进程组用户号一个进程有两个用户号:UID和EUID,运行文件的那个用户是UID,文件拥有者的id是EUID有原创 2021-02-22 16:53:09 · 132 阅读 · 0 评论 -
sockaddr_ll和ifreq
(一)ifreq结构体ifreq结构体可以用来配置ip地址,MTU,网卡等一些设备信息。struct ifreq{#define IFHWADDRLEN 6 union { char ifrn_name[IFNAMSIZ]; //网卡名 } ifr_ifrn; union { struct sockaddr ifru_addr; //地址 struct sockaddr ifru_dstaddr; struct sockaddr ifru_broadaddr;原创 2021-02-19 17:05:21 · 1774 阅读 · 0 评论 -
icmp实现shell反弹
#概述1.创建原始套接字(icmp),分别为发送端和接收端,另外再起一个进程绑定一个端口进行tcp监听。2.发送端向接收端发送icmp包后,接收端过滤icmp包后获得发送端发出的icmp包再解包和解密,当口令正确,解析icmp_data段的ip和port。3.拿到ip和port后,创建一个tcp套接字去connect这个addr,连接成功后将stdin,stdout,stderr重定向到创建的套接字中,再execl反弹shell就完成了.源码发送端#include <stdio.h>原创 2021-02-01 14:21:03 · 361 阅读 · 0 评论 -
Linux 临时权限
* 设置文件权限原创 2021-01-28 19:44:32 · 333 阅读 · 0 评论 -
Linux aio异步
异步同步:执行一个操作之后,等待结果,然后才继续执行后续的操作。异步:执行一个操作后,可以去执行其他的操作,然后等待通知再回来执行刚才没执行完的操作。阻塞:进程给CPU传达一个任务之后,一直等待CPU处理完成,然后才执行后面的操作。非阻塞:进程给CPU传达任我后,继续处理后续的操作,隔断时间再来询问之前的操作是否完成。这样的过程其实也叫轮询aioaiocb 结构体struct aiocb{ int aio_fildes; /* File desriptor. */ 文件描述符 in原创 2021-01-26 16:36:19 · 231 阅读 · 0 评论 -
linux io复用
fctnl套接字都是默认为阻塞,所以要用到函数fctnl来改变设定fctnl 函数用来设定套接字阻塞情况头文件#include<fctnl.h>fctnl(SOCKET,option,flag);1.SOCKET 为套接字描述符2.option 操作的标识符 通常有 F_SETFL F_GETFL3.flag 设定类型 O_NONBLOCK(非阻塞)#include<fctnl.h>/* .....*/int fl原创 2021-01-06 14:52:11 · 172 阅读 · 0 评论 -
C语言文件操作
C语言缓冲区缓冲的类型1.全缓冲 _IOFBUF2.行缓冲 _IOLBUF3.无缓冲 _IONBUF标准输入输出1.stdin 0 标准输入2.stdout 1 标准输入3.stder 2 标准错误清空缓冲区fllush(buf);buf表示缓冲区例如 stdin stdout设置缓冲区void setbuf(FILE*,char*,int );//文件指针 指定缓冲区 缓冲长度void setbuffer(FILE*,char*,int);//同上 全缓冲原创 2020-12-26 19:58:08 · 274 阅读 · 0 评论 -
linux/c socket编程
标题原创 2020-12-26 19:52:58 · 283 阅读 · 1 评论
分享