Linux系统程序设计笔记
Linux系统程序设计笔记
NGC_2070
纸上得来终觉浅,绝知此事要躬行!
展开
-
Linux程序设计:高级文件操作-存储映射
目录高级文件操作-存储映射mmap和munmap函数案例一案例二高级文件操作-存储映射存储映射是一个磁盘文件与存储空间的一个缓存相映射,对缓存数据的读写就相应的完成了文件的读写。mmap和munmap函数#include <sys/types.h> #include <sys/mman.h>void *mmap(void *addr, size_t length, int prot, int flags, int fd, off_t .原创 2020-09-06 19:06:01 · 152 阅读 · 0 评论 -
Linux程序设计:高级文件操作-文件锁
目录高级文件操作-文件锁文件锁按功能分为fcntl函数flock结构体加锁和解锁区域的注意锁的继承与释放案例一案例二高级文件操作-文件锁当多个用户共同使用、操作一个文件的时候,linux通常采用的方法是给文件上锁,来避免共享资源产生竞争的状态。文件锁按功能分为共享读锁 文件描述符必须读打开 一个进程上了读锁,其它进程也可以上读锁进行读取 独占写锁 文件描述符必须写打开 一个进程上了写锁,其它进程就不能上写.原创 2020-09-06 00:49:34 · 272 阅读 · 0 评论 -
Linux程序设计:fcntl函数、ioctl函数、I/O处理方式
目录fcntl函数ioctl函数I/O处理方式fcntl函数#include <unistd.h>#include <fcntl.h>int fcntl(int fd, int cmd);int fcntl(int fd, int cmd, long arg);int fcntl(int fd, int cmd, struct flock *lock);返回: 若成功则依赖于cmd,若出错为-1 功能: 可以改变已经打开文件的性质 常见的功能..原创 2020-09-04 20:21:28 · 299 阅读 · 0 评论 -
Linux程序设计:dup和dup2函数
目录引例实现cat命令dup和dup2函数文件重定向案例 引例 输入重定向cat < mypasswd输出重定向cat > mytxt追加输出重定向cat >> mytxt实现cat命令在src/cat.c#include "io.h"#include <stdio.h>#include <stdlib.h>#include <string.h>#include <unis.原创 2020-09-04 18:16:07 · 404 阅读 · 0 评论 -
Linux程序设计:文件内核数据结构、原子操作及案例
目录文件内核数据结构原子操作文件内核数据结构一个打开的文件在内核中使用三种数据结构表示文件描述符表 文件描述符标志 文件表项指针 文件表项 文件状态标志 读、写、追加、同步和非阻塞等状态标志(例如open函数的flag参数) 当前文件偏移量(lseek函数改的就是这里) i节点表项指针 引用计数器(在多进程中应用) i节点 文件类型和对该文件的操作函数指针 当前.原创 2020-09-04 16:23:27 · 191 阅读 · 0 评论 -
Linux程序设计:lseek函数
lseek函数#include <sys/types.h>#include <unistd.h>off_t lseek(int fd, off_t offset, int whence);返回: 若成功则返回新的文件位移量(绝对偏移量,相对于文件开始位置的偏移量),若出错为-1 功能: 定位一个已打开的文件对应的C库函数int fseek(FILE *stream,long offset,int whence);lseek函数参数fd ...原创 2020-09-04 00:51:21 · 399 阅读 · 0 评论 -
Linux程序设计:read函数、write函数
read函数#include <unistd.h>ssize_t read(int fd, void *buf, size_t count);返回: 读到的字节数,若已到文件尾为0,若出错为-1 功能: 从打开文件中读数据 对应的标准C库函数:size_t fread (void *ptr, size_t size, size_t nmemb, FILE *stream);read函数参数fd 读取文件的文件描述符 buf ...原创 2020-09-04 00:05:21 · 1259 阅读 · 0 评论 -
Linux程序设计:文件I/O系统调用、open函数、creat函数
目录文件I/O系统调用文件操作方式open函数creat函数close函数文件I/O系统调用open() 打开文件 create() 创建文件 close() 关闭文件 read() 读取文件 write() 写入文件 lseek() 文件定位 这些不带缓存的函数都是内核提供的系统调用。 它们不是ANSI C的组成部分,但是POSIX的组成部分。文件操作方式系统调用与C库标准库函数 遵守ISO标准,.原创 2020-09-03 23:06:10 · 475 阅读 · 0 评论 -
Linux程序设计:文件I/O的概念、FILE结构体、文件描述符
目录标准C的I/OFILE结构体标准C的IO缓存类型行缓存案例文件描述符文件描述符与文件指针标准文件指针文件描述符与文件指针相互转换标准C的I/Ochar *fgets(char *s, int size, FILE *stream);int printf(const char *format, ...);int fprintf(FILE *stream, const char *format, ...);size_t fread(void *ptr, si.原创 2020-09-03 21:10:51 · 234 阅读 · 0 评论 -
Linux程序设计:操作系统概论及Linux系统基本概念
目录计算机的基本组成计算机部件:顶层视图指令周期取指令和执行指令理想计算机的特征程序执行的例子操作系统的概念操作系统的目标计算机系统的层次视图操作系统提供的服务操作系统的主要特性、发展及特性Linux操作系统的基本构成内核(kernel)查看内核源码Linux操作系统的基本概念启动流程BootLoader(uboot)init进程内存管理虚拟内存段页式内存管理系统调用Linux进程的运行状态UNIX标准计.原创 2020-09-03 00:03:11 · 698 阅读 · 0 评论 -
Linux网络编程基础之多线程
索引3.7.1.再论进程3.7.1.1、多进程实现同时读取键盘和鼠标3.7.1.2、使用进程技术的优势3.7.1.3、进程技术的劣势3.7.1.4、解决方案就是线程技术3.7.2.线程的引入3.7.2.1、使用线程技术同时读取键盘和鼠标3.7.2.2、linux中的线程简介3.7.2.3、线程技术的优势3.7.3.线程常见函数3.7.3.1、线程创建与回收3.7.3.2、线程取消3.7.3.3、线...原创 2020-04-18 00:53:26 · 676 阅读 · 0 评论 -
Linux网络编程基础之文件IO笔记整理
文章目录3.1.1.应用编程框架介绍3.1.2.文件操作的主要接口API文件操作的一般步骤文件描述符3.1.3.一个简单的文件读写实例3.1.3.1、打开文件与关闭文件3.1.3.2、实时查man手册3.1.3.3、读取文件内容3.1.3.4、向文件中写入3.1.4.open函数的flag详解13.1.4.1、读写权限:O_RDONLY O_WRONLY O_RDWR3.1.4.2、打开存在并有内...原创 2020-04-11 20:27:19 · 284 阅读 · 0 评论