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

php 怎么做 网站高端网站建设公司哪家服务好

php 怎么做 网站,高端网站建设公司哪家服务好,智能网站建设加工,网站空间的价格【Linux学习笔记】基础IO之理解文件 🔥个人主页:大白的编程日记 🔥专栏:Linux学习笔记 前言 哈喽,各位小伙伴大家好!上期我们讲了进程替换 今天我们讲的是基础IO之理解文件。话不多说,我们进入正题&#…

【Linux学习笔记】基础IO之理解文件

🔥个人主页大白的编程日记

🔥专栏Linux学习笔记


前言

哈喽,各位小伙伴大家好!上期我们讲了进程替换 今天我们讲的是基础IO之理解文件。话不多说,我们进入正题!向大厂冲锋!
在这里插入图片描述

1.理解"文件"

1-1狭义理解

  • 文件在磁盘里
  • 磁盘是永久性存储介质,因此文件在磁盘上的存储是永久性的
  • 磁盘是外设(即是输出设备也是输入设备)
  • 磁盘上的文件本质是对文件的所有操作,都是对外设的输入和输出简称IO

1-2广义理解

·Linux下一切皆文件(键盘、显示器、网卡、磁盘···…·这些都是抽象化的过程)(后面会讲如何去理解)

1-3文件操作的归类认知

  • 对于OKB的空文件是占用磁盘空间的
  • 文件是文件属性(元数据)和文件内容的集合(文件=属性(元数据)+内容)
  • 所有的文件操作本质是文件内容操作和文件属性操作

1-4系统角度

对文件的操作本质是进程对文件的操作
磁盘的管理者是操作系统
文件的读写本质不是通过C语言/C++的库函数来操作的(这些库函数只是为用户提供方便),而是通过文件相关的系统调用接口来实现的

2.回顾C文件接口

2-1 hello.c打开文件

#include <stdio.h>int main(){FILE *fp = fopen("myfile", "w");if(!fp){printf("fopen error!\n");}while(1);fclose(fp);return 0;}

打开的myfile文件在哪个路径下?

  • 在程序的当前路径下,那系统怎么知道程序的当前路径在哪里呢?

可以使用ls/proc/[进程id] -l 命令查看当前正在运行进程的信息:

[hyb@VM-8-12-centos io]$ ps ajx | grep myProc
506729 533463 533463 506729 pts/249 533463 R+ 1002 7:45 ./myProc
536281 536542 536541 536281 pts/250 536541 R+ 1002 0:00 grep --color=auto myProc[hyb@VM-8-12-centos io]$ ls /proc/533463 -l
total 0
......
-r--r--r-- 1 hyb hyb 0 Aug 26 17:01 cpuset
lrwxrwxrwx 1 hyb hyb 0 Aug 26 16:53 cwd -> /home/hyb/io
-r--r--r-- 1 hyb hyb 0 Aug 26 17:01 environ
lrwxrwxrwx 1 hyb hyb 0 Aug 26 16:53 exe -> /home/hyb/io/myProc
dr-x------ 2 hyb hyb 0 Aug 26 16:54 fd
......

其中:

  • cwd:指向当前进程运行目录的一个符号链接。
  • exe:指向启动当前进程的可执行文件(完整路径)的符号链接。

打开文件,本质是进程打开,所以,进程知道自己在哪里,即便文件不带路径,进程也知道。由此OS就能知道要创建的文件放在哪里。

2-2 hello.c写文件

 #include <stdio.h>#include <string.h>int main(){FILE *fp = fopen("myfile", "w");if(!fp){printf("fopen error!\n");}const char *msg = "hello bit!\n";int count = 5;while(count--){fwrite(msg, strlen(msg), 1, fp);}fclose(fp);return 0;}

2-3 hello.c读文件

#include <stdio.h>
#include <string.h>int main() {FILE *fp = fopen("myfile", "r");if (!fp) {printf("fopen error!\n");return 1;}char buf[1024];size_t s;while (1) {s = fread(buf, 1, sizeof(buf), fp);if (s > 0) {buf[s] = 0;  // Null-terminate the stringprintf("%s", buf);}if (feof(fp)) {break;}}fclose(fp);return 0;
}

稍作修改,实现简单cat命令:

#include <stdio.h>
#include <string.h>int main(int argc, char* argv[]) {if (argc != 2) {printf("argv error!\n");return 1;}FILE *fp = fopen(argv[1], "r");if (!fp) {printf("fopen error!\n");return 2;}char buf[1024];while (1) {int s = fread(buf, 1, sizeof(buf), fp);if (s > 0) {buf[s] = 0;  // Null-terminate the stringprintf("%s", buf);}if (feof(fp)) {break;}}fclose(fp);return 0;
}

2-4输出信息到显示器,你有哪些方法

#include <stdio.h>
#include <string.h>int main()
{const char *msg = "hello fwrite\n";fwrite(msg, strlen(msg), 1, stdout);printf("hello printf\n");fprintf(stdout, "hello fprintf\n");return 0;
}

2-5 stdin & stdout & stderr

C默认会打开三个输入输出流,分别是stdin,stdout,stderr
仔细观察发现,这三个流的类型都是FILÉ*,fopen返回值类型,文件指针

 #include <stdio.h>extern FILE *stdin;extern FILE *stdout;extern FILE *stderr;

2-6打开文件的方式

如上,是我们之前学的文件相关操作。还有fseekftellrewind的函数,在C部分已经有所涉猎,

后言

这就是基础IO之理解文件。大家自己好好消化!今天就分享到这! 感谢各位的耐心垂阅!咱们下期见!拜拜~

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

相关文章:

  • 免费查看招标信息的网站云南网站优化
  • 免费公司建站旅游网站建设需求分析
  • 网页标准化对网站开发维护的好处网上项目外包
  • 上海做网站 公司 哪家好哪里有永久免费建站
  • 没有网站 淘宝客手机网站建设口碑好
  • 东莞做商城网站建设e4a怎么做点击跳转网站
  • 做静态网站多少钱wordpress轮播图调用
  • 赣州建站服务文库网站怎么做seo
  • cms网站建设的实训总结建立企业网站的步骤
  • 简述网站建设基本过程个人如何建立公司网站
  • 成都sw网站建设服装设计画图软件app
  • 潍坊在线制作网站厦门长实建设有限公司网站
  • 雷州市住房和城乡规划建设局网站长沙游戏推广
  • 网站开发用户登陆的安全wordpress网站上传
  • 上海专业网站制作开发做网站的背景像素
  • 淘宝上面建设网站 天堂资源地址在线下载
  • 建设网站的会计分录wordpress如何去除底部
  • 网站上线准备免得做网站
  • 代理分佣后台网站开发谷歌代理
  • 庆阳做网站公司南平网络推广
  • 温州专业营销网站制作查飞机进出港的app
  • 郑州高考网站建设快速排名工具免费
  • 网站用什么技术实现在线制作图片渐变色
  • 沈阳专业网站建设公司响应式网页设计案例实现与分析
  • 网站建设阶段性工作重点wordpress 高校官网
  • 吉林市建设工程档案馆网站北京小程序定制开发
  • 河南炒股配资网站开发没有rss源的网站如何做rss订阅
  • wordpress拿站禅城做网站
  • 简洁文章网站模板下载苏州市建设厅网站
  • 南京网站设计 联络南京乐识企业网络营销项目