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

嵌入式自学第二十四天(5.20)

(1)系统编程:包括四部分文件操作、进程、网络、数据库。
(2)操作系统主要管理硬件,封装了大量接口(大量函数),利用好这些接口就可以实现对硬件的操作
(3)输入输出是相对于计算机说的。
(4)函数不会用时用man + 函数名 查找。
(5)接下来先学习文件操作函数。
打开文件:FILE *fq = fopen(“文件名”,“权限”);
        FILE *是一个文件流指针,包括文件内容、大小、创建时间等等,这里主要用到文件内容。
        权限:读r 读写r+目标文件必须存在 
        写w 读写w+目标文件不存在会先创建,已存在会清空原内容。
        函数调用成功返回文件流指针,失败返回空指针。
读:fgetc/fgets:前者一次读一个单词,后者一次读一行。

应用

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

 

#include <stdio.h>

// ./a.out srcfile1 dstfile2

int main(int argc, char** argv)

{

FILE* src = fopen("1.txt", "r"); // argv[1]

FILE* dst = fopen("2.txt", "w"); // "argv[2]"

if (NULL == src || NULL == dst)

{

fprintf(stderr, "fopen error\n");

return 1;

}

while (1)

{

int c = fgetc(src);

if(EOF == c)

{

break;

}

fputc(c, dst);

}

fclose(dst);

fclose(src);

// system("pause");

return 0;

}

写:fputc/fputs:前者一次写一个单词,后者一次写一行。

应用

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

 

#include <stdio.h>

// a.out srcfile dstfile

int main(int argc, char *argv[])

{

if(argc<3)

{

printf("usage:./a.out srcname dstname\n");

return 1;

}

//FILE* fp = fopen("/etc/passwd","r");

FILE* src = fopen(argv[1],"r");

FILE* dst = fopen(argv[2],"w");

if(NULL == src|| NULL == dst)

{

fprintf(stderr,"fopen error\n");

return 1;

}

while(1)

{

char buf[1024]={0};

if(NULL == fgets(buf,sizeof(buf),src))

{

break;

}

fputs(buf,dst);

}

fclose(src);

fclose(dst);

return 0;

}

关闭文件:fclose(fq)

(6)od -t x4 1.txt以二进制格式查看文件,每四个字节一组

    vimdiff对比两个文件内容
    
    int main(int argc, char **argv)
    argv是参数个数,argv[i]是参数。
./a.out 1 2 3 4 5 6,函数中参数argv[i]对应的1到6。
 

http://www.xdnf.cn/news/7805.html

相关文章:

  • Stack Queue
  • AI智能体-Coze文本知识库-飞书文档数据提取
  • LLM大模型工具链
  • NHANES最新指标推荐:NHR
  • Python 中的类属性与实例属性详解
  • 【isaac sim-15】具身仿真-你的第一个机械臂程序---
  • 什么是库存预警系统,如何搭建自动化库存预警系统
  • AGI大模型(29):LangChain Model模型
  • 深入理解MySQL结构与执行流程
  • JAVA打飞机游戏设计与实现(论文+源代码)【源码+文档+部署】
  • 在Java项目中集成Deepseek大语言模型实践指南
  • 【Linux系统】gcc编译器的使用
  • Woocommerce 热卖产品不起作用
  • 飞桨paddle import fluid报错【已解决】
  • 模糊照片变清晰:照片高清修复 ComfyUI 使用教学
  • 2.10 财务分析
  • 活体检测接口全面评测:2025年活体检测选择指南
  • conda 设置env后,环境还是安装在c盘的解决方式:
  • LLM应用开发平台资料
  • python使用yolo训练模型
  • 【YOLOs-CPP-图像分类部署】01-构建项目
  • Python异步编程详解
  • Hive drop column 的解决方法
  • 第二届帕鲁杯时空交织的密语
  • AUTOSAR图解==>AUTOSAR_SRS_SecureOnboardCommunication
  • 大模型的开发应用(三):基于LlaMAFactory的LoRA微调(上)
  • VMware三种网络配置对比
  • Cow Ski Area G---二维图转一维+tarjan缩点
  • 嵌入式学习笔记 D24 :系统编程之i/o操作
  • 解决 Incorrect username or password (access token)