UNIX环境高级编程
输入“/”快速插入内容
UNIX环境高级编程
用户7578
用户7578
2025年3月1日修改
画板
参考视频:
Linux系统编程(李慧琴)
参考书籍:
Unix环境高级编程(第三版) -W.Richard Steevens
深入理解计算机系统(CSAPP)
代码实例:
https://github.com/ReisenTM/lhq-LinuxC
思考
💡
1.
遇到返回值为指针的,要思考指针是在静态区还是在堆区
2.
谁申请谁释放
3.
优先级:可读>正确>效率
4.
计算机领域学习要学会”不求甚解“,不要太追求深度而忽略了广度
5.
把每个程序当成一个模块去写,培养宏观思维
标准IO
IO是一切实现的基础
fprintf()
作用:
fprintf 函数的功能是:
Print formatted data to a stream
格式化输出数据到流,这个流
并没有特指是文件流
使用:
stdout -- 同(printf(".."))
。
stderr --
标准错误输出设备 两者
默认向屏幕输出
。
如果用转向标准输出到磁盘文件,则可看出两者区别。
stdout
输出到磁盘文件,
stderr
在屏幕。
代码块
C
fprintf(stderr,"stderr ");
fprintf(stdout,"stdout ");
如果使用重定向">"到.txt,会发现屏幕输出了"stderr",文档中保存了"stdout"
fopen()
使用:
FILE *fopen(const char*path,const char *mode)
const的目的是告诉使用者该函数不会修改传入的参数,可以放心使用,涉及到代码编写规范
返回值:成功返回file指针,否则返回NULL并设置errno(error number)
EOF:文件最后一个有效字节的
下一个位置
注意:
mod只识别串
开头的内容
,如r+write只识别r+
r/r+:要求文件必须存在
,如果不存在则当前调用结束返回出错
linux环境下‘b’可以忽略,如果需要移植到windows且指定二进制流才需要加
补充:
一个进程默认只能打开
1024
个文件,其中包含一个进程默认打开的三个流:
stdin stdout stderr ,限制可以通过ulimit 修改
ulimt -a命令