分类: code

看到别人写的不错的代码 收藏一下

Linux C编程 使用pipe管道进程间通信,详细注释

管道作用于有血缘关系的进程之间,通过fork来传递 调用pipe函数时在内核中开辟一块缓冲区(称为管道)用于通信,它有一个读端一个 写端,然后通过filedes参数传出给用户程序两个文件描述符,filedes[0]指向管道的读 端,filedes[1]指向管道的写端(很好记,就像0是标准输入1是标准输出一样)。 所以管道 在用户程序看起来就像一个打开的文件,通过read(filedes[0]);或者write(filedes[1]);向这个文件读写数据其实是在读写内核缓冲区。…

Linux C语言多线程大文件拷贝代码

Linux C多线程大文件拷贝代码,自己练习写的,留做纪念! 方法1:read、write实现 该方法下,由于read、write是两个系统调用,很有可能T1 read完,未来及write就失去了CPU资源,T2获取CPU进行读写操作后,T1再次获得CPU, 从而写至错误位置上。为避免该种情况,只能在每次读写之前修改文件读写位置。但lseek和read这两个系统调用间也可能失去CPU。 必须合为一个原子操作。pread、pwrite可实现该目的。 方法2:mmap实现 使用m…

C++设计模式_策略模式练习代码

  策略模式的优缺点: 优点: 1.策略模式提供了对“开闭原则”的完美支持,用户可以在不修改原有系统的基础上选择算法或行为,也可以灵活的增加新的算法或行为 2.使用策略模式可以避免多重条件选择语句。 3.策略模式提供了一种算法的复用机制。由于将算法单独提取出来封装在策略类中,因此不同的环境类可以方便地复用这些策略类。 缺点: 1.客户端必须知道所有的策略类,并自行决定使用哪一个策略类。(也就是说策略模式只实用与客户端知道所有算法或行为的情况) 2.策略模式将造成系统…