day18

今天开始学习Linux高级编程

先开始讲shell命令:

应用练习:

3.文件查找命令:

搜索命令:find

grep

操作一下:

--------------------------------小结:-------------------------------

课堂练习:

一条shell命令,将/usr/include/stdio.h 文件后200行中与extern相关的内容记录到lyq.c文件中

网络配置

1.2网络配置修改

临时修改IP地址
ifconfig +网卡 +更改后的IP地址

1.3网络虚拟接口设置

ifconfig 网卡:序号 +IP地址

6.查看是否安装成功:

dpkg -l 软件名字

二    IO

打开文件内容

全缓存和无缓存:

5.标准IO:
        getchar putchar scanf printf gets puts  -> 标准IO

        #include <stdio.h>

        fopen/fclose 
        fgetc/fputc 
        fgets/fputs
        fscanf/fprintf
        fread/fwrite 
        fseek/rewind/ftell 

    6.从文件中读写数据的流程:
        打开文件 -> 读写文件 -> 关闭文件
        fopen                   fclose
                    fgetc/fputc     单个字符的读写
                    fgets/fputs     字符串的读写
                    fscanf/fprintf  格式化字符串的读写
                    fread/fwrite    二进制文件的读写

    7.函数接口:
        1.fopen
          FILE *fopen(const char *pathname, const char *mode);
          功能:
            打开pathname对应的文件并与其建立一个文件流
          参数:
            pathname:要打开文件路径的字符串
            mode:
                r       只读            文件不存在报错,文件存在只读打开
                r+      读写            文件不存在报错,文件存在读写打开
                w       只写            文件不存在创建,文件存在将文件内容清空,只写打开
                w+      写读            文件不存在创建,文件存在将文件内容清空,写读打开
                a       追加只写        文件不存在创建,文件存在追加只写打开
                a+      追加写读        文件不存在创建,文件存在追加写读打开
          返回值:
              成功返回打开的文件流指针
              失败返回NULL

        2.fclose 
          int fclose(FILE *stream);
          功能:
            关闭文件,释放文件流指针
          参数:
            stream:文件流指针
          返回值:
            成功返回0 
            失败返回EOF(-1)


    8.文件流:
        1.具有方向性(读写)
        2.具有连续性
        3.具有顺序性

        句柄:操作对象的一个抽象

        valgrind --tool=memcheck --leak-check=full ./a.out

    9.特殊的三个流:
        stdin   标准输入流          从终端读取数据
        stdout  标准输出流          向终端打印数据
        stderr  标准出错流          向终端打印数据 

        getchar、scanf、gets 通过stdin来读取终端数据
        putchar、printf、puts通过stdout来向终端输出数据
        perror通过stderr来向终端输出数据

 10.标准IO缓存:
        缓存分为3类:
            1.全缓存  4k
                缓存区满刷新
                
                刷新条件:
                    1.缓存区存满刷新(全缓存大小:4096)
                    2.fflush函数强制刷新
                    3.程序结束/fclose刷新

                与文件建立的缓存

            2.行缓存  1k
                遇到\n刷新  

                刷新条件:
                    1.缓存区存满刷新(行缓存大小:1024)
                    2.遇到\n刷新 
                    3.fflush函数强制刷新
                    4.程序结束/fclose刷新

                与终端建立的缓存            stdin   stdout 

            3.不缓存
                直接刷新

                缓存区大小 0k               stderr

                人机交互、界面控制、出错处理

            4.setvbuf
              int setvbuf(FILE *stream, char *buf, int mode, size_t size);
              功能:
                改变一个流的缓存类型
              参数:
                stream:文件流指针
                buf:指定缓存空间的首地址
                mode:
                    _IONBF  不缓存
                    _IOLBF  行缓存
                    _IOFBF  全缓存
                size:
                    设定缓存区的大小
              返回值:
                成功返回0 
                失败返回非0 

    11.fputc 
       int fputc(int c, FILE *stream);
       功能:
        向流中写入一个字符
       参数:
        c:写入字符的ASCII码值
        stream:文件流指针 
       返回值:
        成功返回写入字符的ASCII码值
        失败返回EOF

       注意:
        1.fputc只能写入一个字符,写入多个字符需要多次调用fputc
        2.fputc只能写入字符

  • 26
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值