并发多进程服务器网络聊天模型

Comment

这两天在想,到底是否学会了,怎么验证你学会了,我一直在纠结,但是昨天早上醒来,我觉得我可能迄今为止做错了很多事,比葫芦画瓢?谁都会,靠着自己脑中残留的记忆来照着写,真的是硬实力吗?我不觉得,我认为只有自己写出来了,才算你牛逼。

这两天虽然只写了不多的代码,但我觉得让我受益匪浅。把遇到的问题即时记录下来则会很有帮助。
1.warning的警告要看在哪里警告,警告的提示跟函数参数的出入在哪,我的问题在于编译时提示我recvfrom的参数有问题,

Read More

环形队列数据读写实现

Comment
在此项目中,创建了一个信号量集合并包含了三个信号量. 使用一个信号量 (SEM_MUTEX) 用于共享内存的互斥. 使用两个信号量(SEM_EMPTY 与 SEM_FULL)用于环形队列的同步 SEM_EMPTY = 0,表示目前队列只有0个数据为空(本人倾向于记SEM_CURRENT=0,更方便记忆。) 当 SEM_FULL = 0 时,表示目前队列...

Read More

网络编程之字节序转换API

Comment
ip字符串转换网络字节序: 12int inet_aton(const char *cp, struct in_addr *inp); [addr to network]功能:将cp指向的IP字符串转成网络字节inp保存的地址中。 网络字节序转换IP字符串 1234567char *inet_ntoa(struct in_addr in); [...

Read More

网络编程之字节符转换API

Comment
IP字节符转换为网络

Read More

进程

Comment
所谓进程,顾名思义,就是描述一个程序的执行过程。 进程与程序的区别: 程序是存储在磁盘资源中的静态指令集合,没有执行的概念 进程是程序的动态过程,包括创建,凋亡等等 并发与并行的区别: 并发是指在同一时间段有多个任务同时执行,由操作系统的调度算法来实现,比较经典的就是时间片轮转。 并行是指在多个处理器核心下同时执行任务,比如一个cpu4核心,那么可以同...

Read More

静态库与动态库

Comment
静态库 在与文件链接形成可执行文件后,会绑定在一起,所以优点也就是在执行的时候不需要加载,可以直接运行,缺点相同的就是重复的占用会导致内存开销过大 静态库在linux以.a结尾,在windows中以.lib结尾。 静态库的制作: 首先需要把file.c编译成file.o: gcc -c file.c -o file.o 然后把.o文件生成静态库: 1ar -...

Read More

二进制数据输入输出

Comment

在标准 I/O 中,用于进行二进制文件进行读写时需要调用 fread 与 fwrite

比如常见的图片或者音频文件。
简单介绍一下两个函数,实际用处可以通过查阅编程手册来获取详情信息。
fread:

Read More

linux标准io

Comment

标准io是另一套io接口,但底层还是依赖于文件io,优点就是自带缓冲区以及效率更快,而且标准io是跨平台的,文件io操作只能在linux进行。

Read More

linux文件io

Comment

踏入了阶段四

在 Linux 系统下,用于对文件操作的库函数叫做 文件 I/O
主要包括 open()/close()/read()/write() /lseek()相应的系统调用(准确说法是对系统调用的封装的库函数)

Read More

Makefile的那些事

Comment

阶段三就要完成了,下面的课程将是我更所期待的

makefile在工程很多时可以用自动编译将效率提高很多

在用makefile之前需要安装make,本人是ubuntu系统所以直接

sudo apt-get install make

Read More