分类「C」的所有文章

经典进程同步问题1:生产者-消费者问题

问题描述 一组生产者线程程和一组消费者线程程共享一个初始为空、大小为n的缓冲区,只有缓冲区没满时,生产者才能把消息放入到缓冲区,否则必须等待;只有缓冲区不空时,消费者才能从中取出消息,否则必须等待。由于缓冲区是临界资源,它只允许一个生产者放入消息,...

Tinyhttpd源码浅析

Tinyhttpd源码浅析

Tinyhttpd 是J. David Blackstone在1999年写的一个不到 500 行的超轻量型 Http Server,用来学习非常不错,可以帮助我们真正理解服务器程序的本质。官网:http://tinyhttpd.sourceforge.net,github地址:https://github.com/EZLippi/Tinyhttpd。 一张图来表示该SERVER的运行机制: 工作流程 (1) 服务器启动,在指定端口或随机选取端口绑...

C语言易错点汇总

C语言易错点汇总

无特殊说明情况下,下面所有题s目都是linux下的32位C程序。 1、计算以下sizeof的值。 char str1[] = {'a', 'b', 'c', 'd', 'e'}; char str2[] = "abcde"; char *ptr = "abcde"; char book[][80]={"计算机应用基础","C语言","C++程序设计","数据结构"}; sizeof(str1)=? sizeof(str2)=? sizeof(ptr)=? sizeof(book)=? sizeof(book[0])=? ...

const变量可以修改么?

遇到了一个关于const修饰的变量值是否能修改问题,虽然我知道const变量在某些情况下可以通过指向它的指针来间接修改,但是对原理还是很模糊,今天就整理了一下。 下面通过三段小代码来验证一下 1)、直接修改const修饰的局部变量 #include <stdio.h> int main...