自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(15)
  • 收藏
  • 关注

原创 Linux对文件操作相关函数

1.umask函数上一篇已经说明了一个文件有9个访问权限位,在创建一个新文件时我们总会在open函数的mode参数中指明其访问权限位#include<sys/stat.h>mode_t umask(mode_t cmask);//cmask参数为文件权限访问位如果一个文件被创建之前,umask(001)001也可用S_IXOTH表示,且创建时mode为777,那么创建完成后的文件权限为7762.chmod,fchmod,fchmodat函数#include<sys

2021-08-15 18:10:08 196

原创 linux用户ID组ID以及文件访问权限关系

与进程相关的ID有一下6个或更多 实际用户ID 实际组ID 我们实际是谁 有效用户ID 有效组ID 附属组ID 用于文件权限访问 保存的设置用户ID 保存的设置组ID 由exec函数保存 实际用户ID和实际组ID标识我们是谁有效用户ID,有效组ID,附属组ID决定了我们的文件访问权限保存的设置用户ID,保存的设置组ID,在执行一个程序时保存了有效用户ID和有效组ID的一个副本当执行一个

2021-08-14 17:26:27 431

原创 linux系统调用与原子操作

1.函数read,write以及系统调用ssize_t read (int fd,void *buf,size_t nbytes)ssize_t write(int fd,const void *buf,size_t nbytes)//错误均返回-1读操作返回值为读到的字节数,读到文件尾返回0,读操作从当前偏移量开始读,操作完毕后偏移量增加读字节数。写操作返回写入的字节数,如果设置了O_APPEND选项则文件偏移量移动到文件尾部,写操作完成偏移量增加写的字节数。read和write是不带缓冲

2021-08-11 17:55:55 325

原创 Linux文件I/O(1)

1.文件描述符对于内核而言,所有打开的文件都是通过文件描述符应用的。文件描述符是一个非负整数。当我们打开或者创建一个文件时,内核向进程返回一个文件描述符来标识该文件。UNIX系统shell把文件描述符0(STDIN_FILENO)与进程标准输入关联,文件描述符1(STDOUT_FILENO)与进程标准输出相关联,文件描述符2(STDERR_FILENO)与标准错误相关联。如果不做特别处理,那么这3个描述符都链接向终端。但可以重定向来改变,例如:ls > text.txt这样标准输出重定向

2021-08-10 18:30:15 79

原创 Linux中poll与epoll的实例

函数原型如下poll#include <stdio.h>#include <unistd.h>#include <stdlib.h>#include <string.h>#include <sys/types.h>#include <sys/socket.h>#include <netinet/in.h>#include <arpa/inet.h>#include <p..

2021-08-10 15:49:21 170

原创 Linuxio多路复用之select

在上一篇文章的Linux网络通信中实现了两个进程间进行网络通信,但存在问题,在另一个客户端打开并且也链接到服务端时,这个客户端发的消息无法被服务器接收,这一篇就利用io多路复用select函数解决这个问题,下面是例子和函数原型#include <string.h>#include <sys/select.h>#include <unistd.h>#include <sys/types.h>#include <sys/socket.h&g

2021-08-09 15:37:47 116

原创 Linux网络通信socket

1.套接字描述符套接字是网络通信端点的抽象,正如使用文件描述符访问文件,应用程序用套接字描述符访问套接字。套接字中储存着各种信息,如:通信特性,套接字类型,协议等。套接字函数原型#include<sys/socket.h>int socket(int domain,int type,int protocol);//返回值:成功返回文件(套接字)描述符,失败,返回-1参数domainAF_INET IPv4因特网域AF_INET6IPv6因特网域AF_UN...

2021-08-08 17:03:08 90

原创 Linux进程通信之ipc

1.命令ipcs查看 -m查看共享内存 -q查看消息队列 -s查看信号量 ipcrm删除 -m删除共享内存-q删除消息队列 -s删除信号量2.共享内存共享存储允许一个或者多个进程共享一个给定的存储区,因为数据不需要在客户端和服务器进程之间复制,所以是最快的一种IPC。#include <stdio.h>#include <stdlib.h>#include <unistd.h>#include <sys/types.h>#..

2021-08-07 17:03:37 164

原创 Linux进程通信之信号

1.signal与kill信号的实质是非负整数,这里只实现中断键(CTRL+C),其对应的整数为2.#include<stdio.h>#include<unistd.h>#include<stdlib.h>#include<signal.h>#include<sys/types.h>void hand(int val){ printf("信号%d",val);//其中val的值就是信号的整数}int main()

2021-08-06 19:08:52 73

原创 linux进程间的通信之管道

1.父子进程间使用匿名管道#include<stdio.h>#include<unistd.h>#include<stdlib.h>#include<fcntl.h>#include<string.h>int main(){ int fds[2];//创建管道描述符 int r=pipe(fds);//创建匿名管道 if(r==-1)printf("创建匿名管道失败:%m\n"),exit(-1);

2021-08-04 16:36:40 63

原创 Linux僵尸进程,守护进程以及进程的创建

1.进程的基本概念进程是可执行文件,是系统资源调度的基本单位,进程由数据,代码,和堆栈组成。2.创建进程fork函数可创建父子进程,当前进程是父进程,被创建进程是子进程,创建完之后父子进程通知执行拷贝方式来创建,fork函数创建子进程,子进程拷贝父进程的所有代码并且记录进程上下文(运行到啥时候了),父进程的fork返回子进程id,子进程的fork返回0。下面创建了一个父子进程实现父进程打印当前时间,子进程实现随机数#include <stdio.h>#include &l

2021-08-03 17:51:12 91

原创 Linux文件映射的简单例子

虚拟内存的使用是为了提高访问速度,访问硬盘和访问内存有很大的速度区别。向文件中写入数据//void *mmap(void *addr,size_t length,int prot, int flags,int fd,off_t offset);//int ftruncate(int fd,off_t length)// int munmap(void *addr,size_t length)#include <stdio.h>#include <fcntl.h>//

2021-08-02 17:20:17 293

原创 Linux的源码到目标程序的过程

1.基本概念首先,从源码到目标程序有几个过程,第一,预处理,预处理指令的执行和宏展开,第二预编译,第三,编译,语法检测,程序优化,生成目标程序.o二进制文件,第四,链接,将多个目标程序.o和库链接成一个可执行程序文件。2.gcc与g++C语言的源程序文件 *.c 编译工具 gccC++语言的源程序文件 *.cpp 编译工具 g++g++可用于.c也可用于.cpp。gcc -E *.c用于预处理,gcc -E *.c > test.txt 可在test.txt中查看预处理后的...

2021-08-01 18:16:51 368

原创 Linux初学者常用命令

1.目录相关/表示根目录,所有文件都在根目录下。~表示用户主目录.当前目录..上级目录2.常用命令pwd显示当前工作目录的绝对路径cd 改变工作目录ls 查看文件,默认查看工作目录下文件ls -a查看所有文件,包括隐藏文件,例如.,..ls -l等同于ll,显示如下,对应含义- rw-r--r-- 1 root root 0 10月10 21:06 cc类型 权限 数量...

2021-07-30 17:51:52 52

原创 Linux虚拟机的安装教程

资源和教程都在链接里,需要的自取。虚拟机:链接:https://pan.baidu.com/s/1jfUsyYCGfUuOoFoHtsjVGw提取码:aabb系统镜像:链接:https://pan.baidu.com/s/1ukZbhtJ3rhXequw56aZUag提取码:yyds教程:链接:https://pan.baidu.com/s/1Dzvi6abcKTMAqRGjH3wqeQ提取码:5a12...

2021-07-28 18:08:16 76

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除