一、libc.so 是 C 标准库(C Standard Library)的一个动态链接库版本。它包含了 C 语言标准库中定义的函数和功能,这些函数和功能是几乎所有 C 语言程序的基础。
1. C 标准库:•libc.so 实现了 C 语言标准库的函数,如 printf(), malloc(), open(), read(), write() 等。•这些函数为程序提供了与系统交互的能力,包括文件操作、内存分配、输入输出等。2. 动态链接:•libc.so 是一个动态链接库,这意味着它可以被多个程序共享。•当一个程序运行时,它需要的 libc.so 函数会被加载到内存中,这样可以减少内存占用并提高性能。
二、"流指针"(stream pointer)在 C 语言中通常指的是指向 FILE 结构的指针,它是用于处理文件输入输出的标准库中的一个概念。在 C 语言中,文件输入输出通常通过 stdio.h 头文件中的函数来实现,这些函数使用 FILE 结构体来表示文件流。FILE 结构体:FILE 结构体是 C 语言标准库中用于表示文件流的数据结构。它包含了文件的各种状态信息,如当前读写位置、文件是否打开、文件的状态等。FILE 结构体的定义是不透明的,这意味着它的内部结构对用户来说是隐藏的,用户只能通过标准库提供的函数来操作 FILE 结构体。
文本对照工具
改颜色
argv[1]=*(argv+1) !=(*argv)+1//因为在字符串常量区不一定是连续的
三、
从硬盘读取到内存中查看
fgets遇到\n会停止 ,\0也要占size,遇到\0也停止,一般就能写入size-1
四、memset(buf,0sizeof(buf))内存区域清零
memset 是 C 语言标准库中的一个函数,用于将一块内存区域的所有字节设置为同一个值。它通常用于初始化内存区域或清除内存中的数据。
fgets取时是一行一行取
以二进制数据流查看
五、stdin,stdout,stderr
以二进制位清空
num代表有几个结构体
六、文件操作的步骤,
1,打开->> FILE * fp
2,读写
3,关闭
函数,参数比较多,man手册
fopen,fclose
fgetc,fputc,
getc / putc / getchar / putchar / fgetc / fputc
gets / puts / fgets / fputs
fread / fwrite
七、fputc
int fputc(int c, FILE *stream);
功能:
向流中写入一个字符
参数:
c:要写入的字符
stream:文件流指针
返回值:
成功返回写入的字符ASCII码值
失败返回EOF
八、fgetc
int fgetc(FILE *stream);
功能:
从流中读取一个字符
参数:
stream:文件流指针
返回值:
成功返回读到字符的ASCII码值
读到文件末尾返回EOF
失败返回EOF -1
c= fgetc(stdin);
fputc(c,stdout);
获取键盘上面的输入,显示到屏幕
九、
fgets遇到\n会停止 ,\0也要占size,遇到\0也停止,一般就能写入size,fputs有\n就换行写,没有\n就接着写
十、
读:
size_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream);
功能:从指定的stream流对象中获取nmemeb个大小为size字节的数据块到ptr
所在的本地内存中。
参数:ptr 要存储数据的本地内存一般是数组或者结构体指针
size 单个数据块的元数据大小。最小单元的大小
nmemb 要获取的数据块的个数,拷贝的数据块个数。
stream 要获取数据的源文件流对象,如果是stdin表示从
键盘获取数据,如果是fp文件则表示从普通文件获取。
返回值:成功 小于等于nemeb的整数,表示获取的数据长度
失败 小于0,结尾 0;
写:
size_t fwrite(const void *ptr, size_t size,size_t nmemb, FILE *stream);
功能:从ptr所在本地内存中取出nmemb个大小为size的数据块写入到stream流对应
的文件流对象中。
参数:ptr 要写的数据块地址,一般是数组或者结构体指针
size 要写的数据块元数据大小,单位是字节
nmemb 要写的数据块的个数
stream 要写的目标文件流对象。如果是stdout则表示数据会
写到终端屏幕显示,如果是fp的普通文件则会写入到文件中。
返回值:成功 小于等于nmemb 的个数。
失败 <0