当前位置: 首页 > wzjs >正文

德阳网站建设公司怎么建公司网站

德阳网站建设公司,怎么建公司网站,wordpress更改ip地址,WordPress api发布接口一、核心概念 文件描述符 系统用于唯一标识文件的整数值,如0(标准输入)、1(标准输出)、2(标准错误)。可通过/proc/sys/fs/file-max查看系统支持的最大文件描述符数量。 文件类型与权限 类型&am…
一、核心概念
  1. 文件描述符

    • 系统用于唯一标识文件的整数值,如0(标准输入)、1(标准输出)、2(标准错误)。
    • 可通过/proc/sys/fs/file-max查看系统支持的最大文件描述符数量。
  2. 文件类型与权限

    • 类型:普通文件(-)、目录(d)、链接(l)、字符设备(c)、块设备(b)等。
    • 权限r(读)、w(写)、x(执行),分为用户、组、其他三类权限。
  3. 操作方式对比

    特性系统调用(低级IO)标准IO(高级IO)
    效率直接操作硬件,高效带缓冲区,减少系统调用次数
    跨平台性依赖操作系统跨平台(如fopen
    函数示例open, read, writefopen, fread, fwrite
    适用场景需要精细控制(如设备文件)常规文件读写

二、系统调用(System IO)
1. 常用函数
#include <fcntl.h>
#include <unistd.h>int open(const char *path, int flags, mode_t mode); // 打开文件
ssize_t read(int fd, void *buf, size_t count);      // 读取文件
ssize_t write(int fd, const void *buf, size_t count);// 写入文件
int close(int fd);                                   // 关闭文件
off_t lseek(int fd, off_t offset, int whence);       // 移动文件指针
2. 示例:读取文件内容并统计字节数
#include <fcntl.h>
#include <unistd.h>
#include <stdio.h>int main() {int fd = open("test.txt", O_RDONLY);if (fd == -1) {perror("文件打开失败");return 1;}char buf[1024];ssize_t bytes_read;int total = 0;while ((bytes_read = read(fd, buf, sizeof(buf))) > 0) {total += bytes_read;}printf("文件总字节数: %d\n", total);close(fd);return 0;
}

输出

文件总字节数: 1024(假设文件内容为1KB)

三、标准IO(标准库函数)
1. 常用函数
#include <stdio.h>FILE *fopen(const char *filename, const char *mode); // 打开文件
size_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream); // 读取
size_t fwrite(const void *ptr, size_t size, size_t nmemb, FILE *stream); // 写入
int fclose(FILE *stream);                             // 关闭文件
int fseek(FILE *stream, long offset, int whence);     // 移动文件指针
2. 示例:复制文件内容
#include <stdio.h>int main() {FILE *src = fopen("source.txt", "rb");FILE *dest = fopen("dest.txt", "wb");if (!src || !dest) {perror("文件打开失败");return 1;}char buffer[1024];size_t bytes;while ((bytes = fread(buffer, 1, sizeof(buffer), src)) {fwrite(buffer, 1, bytes, dest);}fclose(src);fclose(dest);printf("文件复制成功\n");return 0;
}

输出

文件复制成功

四、文件属性操作
1. 获取文件信息(stat结构体)
#include <sys/stat.h>struct stat file_info;
stat("test.txt", &file_info);
printf("文件大小: %ld 字节\n", file_info.st_size);
printf("文件类型: %s\n", S_ISREG(file_info.st_mode) ? "普通文件" : "其他");
2. 示例:检查文件权限
#include <sys/stat.h>
#include <stdio.h>int main() {struct stat st;if (stat("test.txt", &st) == -1) {perror("stat失败");return 1;}printf("用户权限: %c%c%c\n",(st.st_mode & S_IRUSR) ? 'r' : '-',(st.st_mode & S_IWUSR) ? 'w' : '-',(st.st_mode & S_IXUSR) ? 'x' : '-');return 0;
}

输出(假设文件权限为rw-):

用户权限: rw-

五、综合例题

题目:使用系统调用实现文件内容反转(如将abc变为cba)。

#include <fcntl.h>
#include <unistd.h>
#include <sys/stat.h>int main() {int fd = open("input.txt", O_RDWR);if (fd == -1) {perror("打开文件失败");return 1;}struct stat st;fstat(fd, &st);off_t size = st.st_size;char buf1, buf2;for (off_t i = 0; i < size / 2; i++) {lseek(fd, i, SEEK_SET);read(fd, &buf1, 1);lseek(fd, size - 1 - i, SEEK_SET);read(fd, &buf2, 1);lseek(fd, i, SEEK_SET);write(fd, &buf2, 1);lseek(fd, size - 1 - i, SEEK_SET);write(fd, &buf1, 1);}close(fd);printf("文件内容已反转\n");return 0;
}

输出

文件内容已反转

总结

  1. 系统调用:适合需要直接控制文件或设备(如串口)的场景,但需手动管理缓冲区。
  2. 标准IO:适合常规文件操作,提供缓冲机制,提升效率,代码更简洁。
  3. 关键点
    • 文件操作后必须关闭,避免资源泄漏。
    • 错误处理(如检查openfopen的返回值)。
    • 理解文件指针和偏移量的操作(lseekfseek)。

通过结合系统调用和标准IO的优势,可以灵活应对不同场景下的文件操作需求。

http://www.dtcms.com/wzjs/115219.html

相关文章:

  • 网站后台管理系统栏目位置有什么推广软件
  • 怎么做二十八页美食网站会员制营销方案
  • 做亳州旅游网站的目的网络营销策划公司
  • 如东县文化馆网站建设东莞最新疫情
  • wordpress ajax登录页面百度seo教程
  • 扬州市广陵区建设局网站肇庆网站建设
  • 公司做网站需要准备什么杭州百度推广代理公司哪家好
  • 怎样在百度上做网站怎么做网站免费的
  • pycharm网站开发优化网站怎么真实点击
  • 做淘客网站需要营业执照吗制作网页用什么软件
  • 重庆潼南网站建设哪家好成人电脑基础培训班
  • 营销型网站设计难不难市场调研报告ppt
  • 点广告挣钱网站有哪些seo实战教程
  • 做静态网站的参考文献客户关系管理系统
  • 淮安市住房和城乡建设局网站首页东莞百度seo推广公司
  • 个人网站备案资料产品推广步骤
  • 深圳做网站 创同盟百度客服中心人工在线
  • 做互联网产品和运营必备的网站百度移动应用
  • 做调查赚钱靠谱的网站有哪些百度安装
  • 网易企业邮箱登入入口南京百度关键字优化价格
  • 人和动物做的网站百度推广搜索排名
  • 企业网站建设市场的另一面病毒式营销案例
  • 网站设计是什么专业发帖推广哪个平台好
  • 网站建设公司价位seo专业论坛
  • web网页是什么惠州seo快速排名
  • 厦门医院网站建设seo网站推广企业
  • 大连网站优化公司店铺推广软文案例
  • 石家庄手机网站建站店铺推广怎么做
  • 360网站做推广扬州seo推广
  • 网站建设完成推广普通话手抄报内容文字