• 学习笔记2


    第九章I/O库函数
    一、I/O库函数与系统调用
    ● 系统调用函数:open()、read()、write()、lseek()、close();
    ● I/O 库函数:fopen()、fread()、fwrite()、fseek()、fclose()。
    二、I/O库函数的算法
    ● fread算法
    ● fwrite算法
    ● fclose算法
    三、I/O库模式
    ● 操作

    1.字符模式I/O
    2.行模式I/O
    3.格式化I/O
    4.其他I/O库函数
    ● fseek()、ftell()、rewind():更改文件流中的读/写字节位置。
    ● feof()、ferr()、fileno():测试文件流状态。
    ● fdopen():用文件描述符打开文件流。
    ● freopen():以新名称重新打开现有的流。
    ● setbuf()、setvbuf():设置缓冲方案。
    ● popen():创建管道,复刻子进程来调用sh。
    四、文件流缓冲
    ● 无缓冲:从非缓冲流中写入或读取的字符将尽快单独传输到文件或从文件中传输。例如,文件流stderr通常无缓冲。到stderr的所有输出都会立即发出。
    ● 行缓冲:遇到换行符时,写入行缓冲流的字符以块的形式传输。例如,文件流stdout 通常是行缓冲,逐行输出数据。
    ● 全缓冲:写入全缓冲流或从中读取的字符以块大小传输到文件或从文件传输。这是文件流的正常缓冲方案。
    ● JONBUF:无缓冲。
    ● JOLBUF:行缓冲。
    ● JOFBUF:全缓冲。
    五、变参函数
    1.项目规范
    ● %c: print char
    ● %s:print string
    ● %u: print unsigned integer
    ● %d:print signed integer
    ● %x:print unsigned integer in HEX
    2.myprintf()的算法
    (1 )扫描格式字符串fmt。打印任何不是%的字符。对于每个'\n'字符,打印一个额外的'\r'字符。
    (2)当遇到'%'时,得到的下一个字符必须是'c'、's'、'u'、'd'或’x'中的 一个。使用va_arg(ap, type)来取相应的参数。然后通过参数类型调用打印函数。
    (3)当fmt字符串扫描结束时,算法结束。

    实验截图(文件复制)

  • 相关阅读:
    第三方支付——支付宝支付
    使用Ansible自动配置Nginx服务
    使用Ansible自动配置JDK环境
    mycat 生产环境 cpu 占用 800% 问题 Mycat调优启用useOffHeapForMerge报java.lang.NumberFormatException异常解决(附源码)
    es 备份 恢复
    修改es 副本数 replicas
    Java压缩流GZIPStream导致的内存泄露
    java 堆外内存泄漏 排查
    Linux下查看某一进程所占用内存的方法(转)
    jmap -histo java内存泄漏排查 -XX:MaxDirectMemorySize=2G
  • 原文地址:https://www.cnblogs.com/marryj/p/16684783.html
Copyright © 2020-2023  润新知