C语言 文件I/O(备查)
所有案列 跳转到其他。
文件打开
FILE* fopen(const char *filename, const char *mode);
参数:filename:指定要打开的文件名,需要加上路径(相对、绝对路径)mode:指定文件的打开模式
返回值:成功:返回指向打开文件的文件指针失败:返回 NULL
关闭文件
一个进程同时打开的文件数是有限制的,超过最大同时打开文件数,再次调用fopen打开文件会失败。
所以使用完毕后还需要将文件关闭。
int fclose(FILE * stream);
参数:stream:接受一个文件指针,用于指定要关闭的文件。它会将缓冲区中的数据写回到文件中,并释放与文件相关的资源。
返回值:返回一个整数值来指示关闭操作的成功与否。成功:关闭文件,它会返回0;失败:返回非零值
按 字符 读写文件
按 字符 写文件
//fputc是一个C标准库函数,用于将一个字符写入到文件中。
int fputc(int character, FILE *stream);
int putc(int character, FILE *stream);参数:character:要写入的字符,注意这个参数是整形stream:文件指针,对应要写入字符的文件
返回值:成功:返回写入的字符失败:返回 EOF
在标准C库中,putc函数实际上是一个宏,而不是一个真正的函数。可以将其视为fputc函数的别名。因此,它们的功能是相同的。
fputc函数通常用于以字符形式写入文件,特别适用于处理文本文件。
按 字符 读文件
//fgetc是一个C标准库函数,用于从文件中读取一个字符。
int fgetc(FILE *stream);
int getc(FILE *stream);fgetc函数接受一个文件指针 stream,用于指定要从中读取字符的文件。
它会从文件中读取一个字符,并返回读取的字符(或者在到达文件结尾或发生错误时返回EOF)。
在标准C库中,getc 函数实际上是一个宏,而不是一个真正的函数。可以将其视为fgetc函数的别名。因此,它们的功能是相同的。
fgetc函数通常用于以字符形式读取文件,特别适用于处理文本文件。
按 行 读写文件
按 行 写文件
//fputs是一个C标准库函数,用于将字符串写入文件。
int fputs(const char *string, FILE *stream);参数:string:字符串的指针,表示要写入的内容stream:文件指针,用于指定要写入字符的文件
返回值:成功:返回一个非负值失败:返回EOF
按 行 读文件
//fgets是一个C标准库函数,用于从文件中读取一行字符。
char *fgets(char *string, int size, FILE *stream);参数:string:字符指针,用于存储读取的字符size:指定要读取的最大字符数(包括终止符)stream:文件指针,用于指定要从中读取字符的文件
返回值:成功:返回参数string的首地址失败:返回NULL
按 块 读写文件
按 块 写文件
//fwrite是一个C标准库函数,用于以二进制形式将数据写入文件。
size_t fwrite(const void *ptr, size_t size, size_t count, FILE *stream);参数:ptr:指向要写入数据的指针size:要写入的每个元素的字节数count:要写入的元素数量stream:文件指针,用于指定要写入数据的文件
返回值:成功:返回写入的元素数量,即count的值失败:或者返回一个小于count的值
fwrite函数会将指针 ptr 指向的数据写入到文件中。写入的总字节数是size与count相乘的积。
按 块 读文件
//fread是一个C标准库函数,用于从文件中以二进制形式读取数据。
size_t fread(void *ptr, size_t size, size_t count, FILE *stream);参数:ptr:指向用于存储读取数据的缓冲区的指针size:每个元素的字节数count:要读取的元素数量stream:文件指针,用于指定要从中读取数据的文件
返回值:成功:返回实际读取的元素数量失败:返回的元素数量与count不相等
fread函数会从文件中读取指定数量的元素,每个元素占据size个字节,将它们存储在ptr指向的缓冲区中。
判断 文件末尾
EOF
#define EOF (-1)
在C语言中,EOF表示文件结束符(end of file)。
在while循环中以EOF作为文件结束标志,这种以EOF作为文件结束标志的文件,必须是文本文件。
在文本文件中,数据都是以字符的ASCII代码值的形式存放。ASCII代码值的范围是0~127,不可能出现-1,因此可以用EOF作为文件结束标志。
当把数据以二进制形式存放到文件中时,就会有-1值的出现,因此不能采用EOF作为二进制文件的结束标志。
为解决这一个问题,ANSI C提供一个feof函数,用于检查文件流的文件结束标志。
feof()
用于检查文件流的文件结束标志。feof 函数既可用以判断二进制文件又可用以判断文本文件。
int feof(FILE *stream);参数:stream:feof函数接受一个文件指针,用于指定要检查的文件流。它会检查文件流的文件结束标志:
返回值:返回一个非零值(真):表示已经到文件结尾返回0(假):表示没有到文件结尾
文件指针偏移
fseek
//fseek是一个C标准库函数,用于在文件中定位文件指针的位置。
int fseek(FILE *stream, long offset, int whence);参数:stream:文件指针,用于指定要定位的文件offset:指定文件指针的偏移量whence:指定文件指针的起始位置,它对应的值有三个SEEK_SET:表示从文件开始处偏移,偏移量为offset个字节SEEK_CUR:表示从当前位置偏移,偏移量为offset个字节SEEK_END:表示从文件末尾处偏移,偏移量为offset个字节
返回值:成功:返回 0失败:返回非零值
注意:fseek函数在二进制文件和文本文件中的行为可能有所不同。
1)在文本文件中,由于使用的编码不同,字符和行的长度可以可变,因此将文件指针定位在某个位置可能无法准确找到这个位置。
2)在二进制文件中,fseek函数可以在任意位置准确定位。
rewind
//rewind是一个C标准库函数,它用于将文件指针重新定位到文件的起始位置。
void rewind(FILE *stream);
参数:
stream:是一个文件指针,用于指定要重新定位的文件。
ftell
//ftell是一个C标准库函数,用于获取文件指针的当前位置(偏移量)。
long ftell(FILE *stream);参数:stream:文件指针,用于指定要获取当前位置的文件。
返回值:成功:表示文件指针相对于文件起始位置的偏移量。失败:返回值为负数
需要注意的是,ftell函数返回的偏移量是以字节为单位的相对值。初始位置为0,向文件末尾方向的偏移量为正,向文件开始方向的偏移量为负。
此外,在Linux系统中,还可以使用 ftello 函数来处理大文件(超过2GB)的偏移量。这些函数返回的偏移量类型为 off_t,可以处理更大的文件。
将文件指针移动到文件的头部
fseek(fp, 0, SEEK_END); // 文件指针移动到文件尾部
fseek(fp, 0, SEEK_SET); // 文件指针移动到文件头部
rewind(fp); // 文件指针移动到文件头部
文件缓冲区
fflush
//fflush是一个C标准库函数,用于将输出缓冲区的内容立即写入文件。
int fflush(FILE *stream);参数:stream :文件指针
返回值:成功:返回0失败:返回非零值
fflush函数接受一个文件指针 stream 作为参数,用于指定要刷新缓冲区的文件。它会将输出缓冲区中的内容强制写入文件,并清空缓冲区。
fflush函数接受一个文件指针 stream 作为参数,用于指定要刷新缓冲区的文件。它会将输出缓冲区中的内容强制写入文件,并清空缓冲区。
使用fflush函数可以确保数据被及时写入文件,而不是在程序结束时或者缓冲区达到一定大小时才写入。这在某些情况下很有用,例如当需要及时查看或共享文件内容时。
fprintf()
//fprintf是一个C标准库函数,用于将格式化的数据写入文件中。
int fprintf(FILE *stream, const char *format, ...);
fprintf函数接受一个文件指针 stream、一个格式化字符串 format 和一系列的可变参数,用于按照指定的格式将数据写入到指定的文件中。
fprintf函数与 printf 函数的用法类似,不同之处在于它将结果输出到指定的文件,而不是标准输出流(stdout)。
删除 / 重命名文件
删除文件
//remove是一个C标准库函数,用于删除文件。
int remove(const char *filename);参数:
filename:用于指定要删除的文件的路径和名称。
返回值:
成功:返回0
失败:返回非零值
使用remove函数删除文件时需谨慎,因为该操作是不可撤销的。
需要确保拥有足够的权限来删除文件,否则删除操作可能会失败。
重命名文件
//rename是一个C标准库函数,用于重命名文件或将文件移动到另一个位置。
int rename(const char *old_filename, const char *new_filename);参数:old_filename:原始文件名(包括路径)new_filename:新文件名(包括路径)
返回值:成功:返回0失败:返回非零值
使用rename函数重命名文件时需谨慎,因为该操作是不可撤销的。
需要确保有足够的权限来执行重命名操作,并且新文件名不会与现有文件冲突。
//rename函数还可以用于将文件移动到不同的目录中,只需要在新文件名中指定目标文件夹的路径。
rename("file.txt", "new/location/newfile.txt");
这样,就可以将文件 file.txt 移动到 new/location 目录下,并命名为 newfile.txt。但是一定要注意,该函数并不会创建新的目录,也就是说要保证 new/location/ 目录是存在的,移动才能成功。
其他
perror()
//perror是一个C标准库函数,它可以将最后一次发生的错误信息输出到终端。
void perror(const char *str);
perror 函数接受一个字符串参数 str,用于作为错误信息的前缀。
它会自动获取最近一次错误的错误码,并将相应的错误描述信息格式化输出到标准错误流(stderr)中。
相对路径 / 绝对路径
文件打开模式
fopen函数第二个参数mode对应的文件打开模式:
三个默认的文件指针
这些文件指针是预定义的,可以在程序中直接使用,无需手动打开或关闭。它们的文件指针类型是FILE*。
文件指针
在使用文件指针之前,需要先定义一个指向FILE类型的指针变量,用于表示文件指针。FILE类型定义在stdio.h头文件中。
//FILE是系统使用 typedef 定义出来的有关文件信息的一种结构体类型,结构中含有文件名、文件状态和文件当前位置等信息。
typedef struct
{short level; // 缓冲区"满"或者"空"的程度 unsigned flags; // 文件状态标志 char fd; // 文件描述符unsigned char hold; // 如无缓冲区不读取字符short bsize; // 缓冲区的大小unsigned char* buffer; // 数据缓冲区的位置 unsigned ar; // 指针,当前的指向 unsigned istemp; // 临时文件,指示器short token; // 用于有效性的检查
}FILE;//进行文件操作的时候,定义文件指针的方式如下
FILE *filePointer;
磁盘文件分类
文本文件在许多领域中都有着广泛的应用,如日志文件、配置文件、源代码文件、文档、电子邮件等。它是人与计算机之间常用的信息交流和数据存储方式之一。
二进制文件在许多应用中扮演着重要的角色,如可执行文件、图像文件、音频文件、视频文件、数据库文件等。它们提供了一种灵活、高效的方式来存储和处理大量的非文本数据,为各种应用程序和领域提供了丰富的功能和性能。
常见的字符编码
按字符 读写文件 案列
//按字符写文件
#include <stdio.h>
#include <string.h>int main()
{char* buf = "One world one dream!";FILE* fp = fopen("example.txt", "w");if (fp == NULL) {printf("Failed to open the file.\n");return 1;}int len = strlen(buf);for (int i = 0; i < len; ++i){int ch = fputc(buf[i], fp);printf("%c", ch);}printf("\n");fclose(fp);return 0;
}
//按字符 读文件
#include <stdio.h>int main()
{FILE* fp = fopen("example.txt", "r");if (fp == NULL) {printf("Failed to open the file.\n");return 1;}char ch;while ((ch = fgetc(fp)) != EOF){printf("%c", ch);}printf("\n");fclose(fp);return 0;
}
按行 读写文件 案列
//按行 写文件
#include <stdio.h>int main()
{const char* string = "Hello, world!";FILE* fp = fopen("example.txt", "w");if (fp == NULL) {printf("Failed to open the file.\n");return -1;}if (fputs(string, fp) == EOF) {printf("Failed to write the string.\n");return -1;}fclose(fp);return 0;
}
//按行 读文件
#include <stdio.h>int main()
{char line[100]; // 假设一行最多100个字符FILE* fp = fopen("example.txt", "r");if (fp == NULL) {printf("Failed to open the file.\n");return 1;}while (fgets(line, sizeof(line), fp) != NULL) {printf("Read line: %s", line);}fclose(fp);return 0;
}
按块 读写文件 案列
//按块 写文件
#include <stdio.h>
#include <string.h>struct Person
{char name[20];int age;double height;
};int main()
{struct Person person;FILE* fp = fopen("example.bin", "wb");if (fp == NULL) {printf("Failed to open the file.\n");return 1;}strncpy(person.name, "John Doe", sizeof(person.name));person.age = 30;person.height = 1.8;if (fwrite(&person, sizeof(person), 1, fp) != 1) {printf("Failed to write the data.\n");return 1;}fclose(fp);return 0;
}
//按块 读文件
#include <stdio.h>struct Person
{char name[20];int age;double height;
};int main()
{struct Person person;FILE* fp = fopen("example.bin", "rb");if (fp == NULL) {printf("Failed to open the file.\n");return 1;}if (fread(&person, sizeof(person), 1, fp) != 1) {printf("Failed to read the data.\n");return 1;}printf("Name: %s\n", person.name);printf("Age: %d\n", person.age);printf("Height: %f\n", person.height);fclose(fp);return 0;
}
需要注意的是,fread函数是以二进制形式读取数据,因此在写入数据时,也需要以二进制方式写入,使用fwrite函数来写入相应的数据。
使用 feo f函数检查文件的结束标志 案列
#include <stdio.h>int main()
{FILE* fp = fopen("example.txt", "r");if (fp == NULL) {printf("Failed to open the file.\n");return 1;}char ch;while ((ch = fgetc(fp))){if (feof(fp)) {printf("\nReached end of file.\n");break;}printf("%c", ch);}printf("\n");fclose(fp);return 0;
}
文件缓冲区 案列
// 使用fflush函数将输出缓冲区的内容立即写入文件
#include <stdio.h>int main()
{FILE* fp = fopen("example.txt", "w");if (fp == NULL){perror("fopen");return 1;}fprintf(fp, "Hello, World!");if (fflush(fp) != 0){printf("Failed to flush the output buffer.\n");return 1;}fclose(fp);return 0;
}
文件指针偏移 案列
//使用fseek函数来定位文件指针的位置
#include <stdio.h>int main()
{FILE* fp = fopen("example.txt", "rb");if (fp == NULL) {printf("Failed to open the file.\n");return 1;}char buf[1024] = { 0 };fseek(fp, 10, SEEK_SET); fread(buf, 1, sizeof(buf), fp);printf("从头部偏移10字节开始读数据, 内容是: %s\n", buf);// rewind(fp);fseek(fp, 0, SEEK_SET); fread(buf, 1, sizeof(buf), fp);printf("从头部开始读数据, 内容是: %s\n", buf);fclose(fp);return 0;
}
//使用ftell函数获取文件指针的当前位置
#include <stdio.h>int main()
{long position;FILE* fp = fopen("example.txt", "r");if (fp == NULL) {printf("Failed to open the file.\n");return 1;}position = ftell(fp);if (position < 0) {printf("Failed to get the current position.\n");return 1;}printf("Current position: %ld\n", position);fseek(fp, 15, SEEK_SET);position = ftell(fp);printf("Current position: %ld\n", position);fclose(fp);return 0;
}
删除 / 重命名文件 案列
//使用remove函数删除文件
#include <stdio.h>int main()
{if (remove("example.txt") != 0) {printf("Failed to delete the file.\n");return 1;}printf("File deleted successfully.\n");return 0;
}
//使用rename函数重命名文件
#include <stdio.h>int main()
{if (rename("oldname.txt", "newname.txt") != 0) {printf("Failed to rename the file.\n");return 1;}printf("File renamed successfully.\n");return 0;
}
详细教程可转(查看案列转)
爱编程的大丙
相关文章:
C语言 文件I/O(备查)
所有案列 跳转到其他。 文件打开 FILE* fopen(const char *filename, const char *mode); 参数:filename:指定要打开的文件名,需要加上路径(相对、绝对路径)mode:指定文件的打开模式 返回值:成…...
web(HTML之表单练习)
使用HTML实现该界面: 要求如下: 用户名为文本框,名称为 UserName,长度为 15,最大字符数为 20。 密码为密码框,名称为 UserPass,长度为 15,最大字符数为 20。 性别为两个单选按钮&a…...
通过对象轮换实现 LRU 缓存结构
文章目录 通过两个对象轮换,按照是否访问实现内容长久保存rollup 的缓存实现 export default function (max) { //max 缓存容量var num, curr, prev;var limit max || 1;function keep(key, value) {if (num > limit) {prev curr; // 超过容量时当前对象变成缓…...
【Unity动画】综合案例完结-控制角色动作播放+声音配套
这个案例实现的动作并不复杂,主要包含一个 跳跃动作、攻击动作、还有一个包含三个动画状态的动画混合树。然后设置三个参数来控制切换。 状态机结构如下: 完整代码 using System.Collections; using System.Collections.Generic; using UnityEngine;pu…...
【工作流Activiti】任务组
1、Candidate-users候选人 1.1、需求 在流程定义中在任务结点的assignee固定设置任务负责人,在流程定义时将参与者固定设置在.bpmn文件中,如果要临时变更任务负责人则需要修改流程定义,系统扩展性很差,针对这种情况,我…...
桌面概率长按键盘无法连续输入问题
问题描述:概率性长按键盘无法连续输入文本 问题定位: 系统按键流程分析 图一 系统按键流程 按键是由X Server接收的,这一点只要明白了X Window的工作机制就不难理解了。X Server在接收到按键后,会转发到相应程序的窗口中。在窗…...
用23种设计模式打造一个cocos creator的游戏框架----(十九)备忘录模式
1、模式标准 模式名称:备忘录模式 模式分类:行为型 模式意图:在不破坏封装性的前提下捕获一个对象的内部状态,并在对象之外保存这个状态。这样以后就可以将对象恢复到原先保存的状态 结构图: 适用于: …...
动手学深度学习-自然语言处理-预训练
词嵌入模型 将单词映射到实向量的技术称为词嵌入。 为什么独热向量不能表达词之间的相似性? 自监督的word2vec。 word2vec将每个词映射到一个固定长度的向量,这些向量能更好的表达不同词之间的相似性和类比关系。 word2vec分为两类,两类…...
力扣200. 岛屿数量(java DFS解法)
Problem: 200. 岛屿数量 文章目录 题目描述思路解题方法复杂度Code 题目描述 思路 该问题可以归纳为一类遍历二维矩阵的题目,此类中的一部分题目可以利用DFS来解决,具体到本题目: 1.我们首先要针对于二维数组上的每一个点,尝试展…...
解决el-table组件中,分页后数据的勾选、回显问题?
问题描述: 1、记录一个弹窗点击确定按钮后,table列表所有勾选的数据信息2、再次打开弹窗,回显勾选所有保存的数据信息3、遇到的bug:切换分页,其他页面勾选的数据丢失;点击确认只保存当前页的数据࿱…...
web网络安全
web安全 一,xss 跨站脚本攻击(全称Cross Site Scripting,为和CSS(层叠样式表)区分,简称为XSS)是指恶意攻击者在Web页面中插入恶意javascript代码(也可能包含html代码),当用户浏览网页之时&…...
若依 ruoyi-vue3 集成aj-captcha实现滑块、文字点选验证码
目录 0. 前言0.1 说明 1. 后端部分1.1 添加依赖1.2. 修改 application.yml1.3. 新增 CaptchaRedisService 类1.4. 添加必须文件1.5. 移除不需要的类1.6. 修改登录方法1.7. 新增验证码开关获取接口1.8. 允许匿名访问 2. 前端部分(Vue3)2.1. 新增依赖 cryp…...
安卓10 flutter webview 回退会闪退
现象 在安卓10设备上,访问了webview页面后,回退到其他页面后,大概率会闪退,请查看issuses https://github.com/flutter/flutter/issues/78405 解决思路:在回退前,先把webview销毁掉,重新生成一个…...
【Unity入门】物体5种移动方法
目录 一、通过修改位置来实现移动二、通过物理系统实现位移三、通过CharacterController组件四、通过输入控制物体移动 一、通过修改位置来实现移动 利用修改Transform组件的position的两种常用方法。 使用Translate()函数 /*物体将向x方向移动1.5单位…...
Elasticsearch的 8.x常用api汇总
ES的查询语法比较复杂,对于初学者需要在不断练习中才会逐渐掌握,本文汇总了ES各种查询语法以及常用api,可以作为新手的实用笔记 首先,安装 Kibana! 下载Elasticsearch,官方下载页面;Elasticsearch 参考,官方文档;<...
k8syaml提供的几个有意思的功能,Kubernetes在线工具网站
k8syaml.cn 提供的几个有意思的功能。 一、yaml资源快速生成 之前编写operator的helm的时候就需要自己写deployment、service、configmap这些资源,那么多字段也记不清,都是先找个模版,然后copy改改,再看官方文档,添加…...
【图像分类】【深度学习】【Pytorch版本】 ResNeXt模型算法详解
【图像分类】【深度学习】【Pytorch版本】 ResNeXt模型算法详解 文章目录 【图像分类】【深度学习】【Pytorch版本】 ResNeXt模型算法详解前言ResNeXt讲解分组卷积(Group Converlution)分割-变换-合并策略(split-transform-merge)ResNeXt模型结构 ResNeXt Pytorch代码完整代码总…...
Android 14 应用适配指南
Android 14 应用适配指南:https://dev.mi.com/distribute/doc/details?pId1718 Android 14 功能和变更列表 | Android 开发者 | Android Developers 1.获取Android 14 1.1 谷歌发布时间表 https://developer.android.com/about/versions/14/overview#timeli…...
【AI美图提示词】第07期效果图,AI人工智能自动绘画,精选绝美版美图欣赏
AI诗配画 山水画中景如画,云雾缭绕峰峦间。桥畔流水潺潺响,诗意盎然山水间。上面的诗句和图片全部来自AI自动化完成,这就是技术的力量,接下来我们进行模型生成学习: 先上原始底图: 下面是模型生成效果图&a…...
前端知识(十三)——JavaScript监听按键,禁止F12,禁止右键,禁止保存网页【Ctrl+s】等操作
禁止右键 document.oncontextmenu new Function("event.returnValuefalse;") //禁用右键禁止按键 // 监听按键 document.onkeydown function () {// f12if (window.event && window.event.keyCode 123) {alert("F12被禁用");event.keyCode 0…...
面向对象设计与分析(28)单例模式的奇异递归模板CRTP实现
前面我们介绍了单例模式的两种实现:懒汉模式和饿汉模式,今天我们以新的方式来实现可复用的单例模式。 奇异递归模板是指父类是个模板类,模板类型是子类类型,即父类通过模板参数可以知道子类的类型。 // brief: a singleton base…...
微信小程序 - 龙骨图集拆分
微信小程序 - 龙骨图集拆分 注意目录结构演示动画废话一下业务逻辑注意点龙骨JSON图集结构 源码分享dragonbones-split.jsdragonbones-split.jsondragonbones-split.wxmldragonbones-split.wxssimgUtil.js 参考资料 注意 只支持了JSON版本 目录结构 演示动画 Spine播放器1.5.…...
使用React 18和WebSocket构建实时通信功能
1. 引言 WebSocket是一种在Web应用中实现双向通信的协议。它允许服务器主动向客户端推送数据,而不需要客户端发起请求。在现代的实时应用中,WebSocket经常用于实时数据传输、聊天功能、实时通知和多人协作等场景。在本篇博客中,我们将探索如…...
vue3使用vue-router嵌套路由(多级路由)
文章目录 1、Vue3 嵌套路由2、项目结构3、编写相关页面代码3.1、编写route文件下 index.ts文件3.2、main.ts文件代码:3.3、App.vue文件代码:3.4、views文件夹下的Home文件夹下的index.vue文件代码:3.5、views文件夹下的Home文件夹下的Tigerhh…...
openGauss学习笔记-164 openGauss 数据库运维-备份与恢复-导入数据-使用COPY FROM STDIN导入数据-处理错误表
文章目录 openGauss学习笔记-164 openGauss 数据库运维-备份与恢复-导入数据-使用COPY FROM STDIN导入数据-处理错误表164.1 操作场景164.2 查询错误信息164.3 处理数据导入错误 openGauss学习笔记-164 openGauss 数据库运维-备份与恢复-导入数据-使用COPY FROM STDIN导入数据-…...
QT Widget - 随便画个圆
简介 实现在界面中画一个圆, 其实目的是想画一个LED效果的圆。代码 #include <QApplication> #include <QWidget> #include <QPainter> #include <QColor> #include <QPen>class LEDWidget : public QWidget { public:LEDWidget(QWidget *pare…...
js输入框部分内容不可编辑,其余正常输入,el-input和el-select输入框和多个下拉框联动后的内容不可修改
<tr>//格式// required自定义指令<e-td :required"!read" label><span>地区:</span></e-td><td>//v-if"!read && this.data.nationCode 148"显示逻辑<divclass"table-cell-flex"sty…...
分布式文件存储系统minio了解下
什么是minio minio 是一个基于 Apache License v2.0 开源协议的对象存储服务。非常适合于存储大容量非结构化的数据,例如图片、视频、日志文件、备份数据和容器/虚拟机镜像等,而一个对象文件可以是任意大小。 是一种海量、安全、低成本、高可靠的云存储…...
迅为RK3568开发板使用OpenCV处理图像-ROI区域-位置提取ROI
在图像处理过程中,我们可能会对图像的某一个特定区域感兴趣,该区域被称为感兴趣区域(Region of Interest, ROI)。在设定感兴趣区域 ROI 后,就可以对该区域进行整体操作。 位置提取 ROI 本小节代码在配套资料“iTOP-3…...
重新认识Word——尾注
重新认识Word——尾注 参考文献格式文献自动生成器插入尾注将数字带上方括号将参考文献中的标号改为非上标 多处引用一篇文献多篇文献被一处引用插入尾注有横线怎么删除?删除尾注 前面我们学习了如何给图片,公式自动添加编号,今天我们来看看毕…...
自学app软件开发/百度seo营销推广多少钱
在SCOM 2012上安装和配置Exchange 2010 MP大致有四步。 1.安装前检查,确保Exchange and SCOM 2012符合安装MP的条件。 2.导入MP。 3.创建一个测试邮箱来让MP运行synthetic transactions. 4. 为synthetic transactions 规则启动事件收集 1.安装前检查,确保…...
赤峰企业网站建设/安徽seo推广公司
在flask中定义了一个简单的删除数据库内容的路由 测试却发现一直报错 说delete_history函数定义时没有接受参数,但是检查delete_history函数却发现没有问题 后来想了半天才发现delete_history的路由函数名也是delete_history,那么程序就会调用路由函数而…...
怎样建立营销网站/采集站seo提高收录
--------------------------------------------- 不知道其他人怎么判断的,我一般是通过查看var/lib/下是否有mysql文件夹判断的。 ------------------------------------------- 1. 启动MySQL服务 启动MySQL服务的命令为:/etc/init.d/mysqld start 命令…...
wordpress评论框字数限制/百度有刷排名软件
原标题:Python基础知识: 元组Python的元组与列表类似,不同之处在于元组的元素不能修改。元组使用小括号,列表使用方括号。元组创建很简单,只需要在括号中添加元素,并使用逗号隔开即可。如下实例:…...
网站后期增加产品/搜索引擎优化的对比
有C#来实现WEB服务器的应用分析 一、HTTP协议的作用原理 WWW是以Internet作为传输媒介的一个应用系统,WWW网上最基本的传输单位是Web网页。WWW的工作基于客户机/服务器计算模型,由Web 浏览器(客户机)和Web服务器(服务器)构成,两者…...
聚名网抢注/自己搜20条优化措施
FPGA的三个时代,最初三十年的回顾(附原英文资料) 来源:本文翻译自IEEE Fellow Stephen M. (Steve) Trimberger写的文章Three Ages of FPGAs: A Retrospective on the First Thirty Years of FPGA Technology。 导读 在 AMD 收购…...