一·牛客知识点刷题笔记:
- 在上下文及头文件均正常的情况下,程序
char c[5]={'a', 'b', '\0', 'c', '\0'};
printf("%s", c);
的运行结果是: ab
printf函数打印字符串,遇到空字符结束。\0表示字符串结束符
2. static_cast 用于良性转换,一般不会导致意外发生,风险很低。
dynamic_cast 借助 RTTI,用于类型安全的向下转型(Downcasting)。
const_cast 用于 const 与非 const、volatile 与非 volatile 之间的转换。
reinterpret_cast 高度危险的转换,这种转换仅仅是对二进制位的重新解释,不会借助已有的转换规则对数据进行调整,但是可以实现最灵活的 C++ 类型转换。
3.
6 文件IO
Linux里的文件描述符,1、0-1023的整数(0、1、2默认已经使用了),一旦新的文件打开,就把当前没有使用的最小的整数分给这个fd,
6.5 Linux系统IO函数()
一些用到的linux tips:
man xx // 查看 xx指令的帮助文档
man指令,查看linux帮助文档,
//open 打开文件,没有则创建
int open(const char *pathname,int flags);
int open(const char *pathname,int flags, mode_t mode);
int close(int fd);
ssize_t read(int fd,void *buf, size_t count);
ssize_t write(int fd,const void *buf, size_t count);
off_t lseek(int fd,off_t offset,int whence);
int stat(const char *pathname,struct stat *statbuf);
int lstat(const char *pathname,struct stat *statbuf);
stat结构体
struct stat{
......
}
Linux的系统IO函数和C语言的标准C库的区别:
C语言的标准C库会用到Linux的系统IO函数
C语言的标准C库有缓冲区,Linux的系统IO函数无缓冲区
C语言的标准C库相当于一个第三方库,是对Linux系统函数的封装;Linux系统函数就是本地库