- 博客(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,那么创建完成后的文件权限为776 2.chmod,fchmod,fchmodat函数 #include<sys
2021-08-15 18:10:08
269
原创 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
545
原创 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
427
原创 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
143
原创 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
250
原创 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
209
原创 Linux网络通信socket
1.套接字描述符 套接字是网络通信端点的抽象,正如使用文件描述符访问文件,应用程序用套接字描述符访问套接字。套接字中储存着各种信息,如:通信特性,套接字类型,协议等。 套接字函数原型 #include<sys/socket.h> int socket(int domain,int type,int protocol); //返回值:成功返回文件(套接字)描述符,失败,返回-1 参数domain AF_INET IPv4因特网域 AF_INET6IPv6因特网域 AF_UN...
2021-08-08 17:03:08
152
原创 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
241
原创 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
138
原创 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
119
原创 Linux僵尸进程,守护进程以及进程的创建
1.进程的基本概念 进程是可执行文件,是系统资源调度的基本单位,进程由数据,代码,和堆栈组成。 2.创建进程 fork函数可创建父子进程,当前进程是父进程,被创建进程是子进程,创建完之后父子进程通知执行拷贝方式来创建,fork函数创建子进程,子进程拷贝父进程的所有代码并且记录进程上下文(运行到啥时候了),父进程的fork返回子进程id,子进程的fork返回0。 下面创建了一个父子进程实现父进程打印当前时间,子进程实现随机数 #include <stdio.h> #include &l
2021-08-03 17:51:12
163
原创 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
392
原创 Linux的源码到目标程序的过程
1.基本概念 首先,从源码到目标程序有几个过程,第一,预处理,预处理指令的执行和宏展开,第二预编译,第三,编译,语法检测,程序优化,生成目标程序.o二进制文件,第四,链接,将多个目标程序.o和库链接成一个可执行程序文件。 2.gcc与g++ C语言的源程序文件 *.c 编译工具 gcc C++语言的源程序文件 *.cpp 编译工具 g++ g++可用于.c也可用于.cpp。 gcc -E *.c用于预处理,gcc -E *.c > test.txt 可在test.txt中查看预处理后的...
2021-08-01 18:16:51
493
原创 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
101
原创 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
135
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅