- 博客(4)
- 收藏
- 关注
原创 Linux C 之文件编程(4)fgets & gets
fgets & gets 由于gets不检查缓冲区大小,所以可能会有问题(蠕虫病毒的入口),所以一定要避免使用gets!因为输入多了,GETS还是会读进去,放在BUFFER装满后相邻的内存中,如果buffer相邻的内存没有要用的数据还好,要是存着要用的数据于是就悲剧了,数据就被冲洗掉了,所以gets这个函数很危险。 注意,putchar和getchar等函数都是把字符当做int而不...
2018-09-30 22:38:26 168
原创 Linux C 之文件编程(3)
2. 库函数 读写文件通常是大量的数据(这种大量是相对于底层驱动的系统调用所实现的数据操作单位而言),这时,使用库函数就可以大大减少系统调用的次数。这一结果又缘于缓冲区技术。在用户空间和内核空间,对文件操作都使用了缓冲区,例如用fwrite写文件,都是先将内容写到用户空间缓冲区,当用户空间缓冲区满或者写操作结束时,才将用户缓冲区的内容写到内核缓冲区 fopen & fclose ...
2018-09-30 22:33:22 143
原创 Linux C 之文件编程(2)
read & write #read 从与文件描述符 fd 相关的文件中读取 n bytes 个字节的数据到 buf 中,返回实际读入的字节数; ##write 将字符串 buf 中前 n bytes 个字节的数据写入与文件描述符 fd 关联的文件中,返回实际写入的字节数。 头文件: #include <unistd.h> 函数原型: size...
2018-09-30 22:16:16 176
原创 Linux C 之文件编程(1)
1. linux文件操作 # 系统调用 系统调用发生在内核空间,因此如果在用户空间的一般应用程序中使用系统调用来进行文件操作,会有用户空间到内核空间切换的开销。但通过系统调用来访问文件是最直接的方式。系统调用函数直接作用于操作系统内核的设备驱动程序从而实现文件访问。文件描述符fd是一个非负整型值,每新打开一个文件,所获得的fd为当前最大fd加1。 Linux系统默认分配了3个文件描述符值...
2018-09-30 22:00:17 141
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人