![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C
来日梦多长
一个喜欢跑步游泳、诗词文史的程序员。
展开
-
C语言读取网络信息
C语言读取网络信息原创 2023-01-03 12:12:59 · 222 阅读 · 0 评论 -
C语言:va_list
C语言 va_list 用法原创 2023-01-03 11:59:39 · 323 阅读 · 0 评论 -
c/c++判断NULL指针
结论只有通过指针读取指针时,编译器才会判断指针的有效性。实验offsetof()函数struct A { int x; char y; long z;};int main() { int offset = ((struct A*)NULL)->y; // 即 offsetof()的实现方法 printf("offset of y: %d\n", offset); // 打印 4,不会报错}以上就是c语言的宏函数offsetof的原理,其定义如下:#define of原创 2021-12-17 21:53:32 · 1912 阅读 · 0 评论 -
换行“\n“与回车“\r“
换行"\n"与回车"\r"我们以Linux的`printf`命令来测试:分析:我们以Linux的printf命令来测试:$ printf "123\n"123$ printf "123\r\n"123$ printf "123"123$ ^C$ printf "123\r"$ printf "123\r\r\n"123分析:printf "123" 输出"123",没有换行。printf "123\n" 输出"123",再加上一个换行。printf "123\r" 没有输出!原创 2021-04-29 16:14:37 · 153 阅读 · 0 评论 -
文件IO与进程
问题:1. 进程为什么会自动打开0, 1, 2三个文件描述符?答:shell进程启动时,会自动打开这三个文件描述符;shell利用fork()开启用户进程(子进程),该子进程复制父进程shell的所有文件描述符,并且共享文件表项;所以,子进程对文件状态标志(读、写、同步或非阻塞等)的修改,将会影响父进程。测试:void pr_fl(int fd); // 自定义函数:打印文件状态标志void set_fl(int fd, flags); // 自定义函数:设置文件状态标志in...原创 2020-07-30 22:30:12 · 370 阅读 · 0 评论 -
C语言申请堆栈的限制
内存空间:32位程序:内存空间不得超过4G,其中4G是最大unsigned int表示的范围(2^32-1),见下图。64位程序:内存空间应该最大是(2^64-1)。这从malloc函数的声明可以看出:void* malloc (size_t size);其中:size_t在64位下为int64,在32位下为int32。栈空间:Linux:据说不能超过2MB,没有测试(`TODO`:待测试)。在linux下可以使用`ulimits`命令查看。Windows原创 2020-05-20 14:30:22 · 1004 阅读 · 0 评论