加载中
MyMinimad ── Linux下用libmad写的mp3解码播放程序(四)

优化了内存使用,不再使用mmap映射整个文件到内存 /* * 本程序是从 minimad 改进而来,如要更详细的说明请参看 minimad.c * * Gu Zhou, 2009/12/25, SiChuan University, China * * 系统: ...

2019/11/21 00:15
113
MyMinimad ── Linux下用libmad写的mp3解码播放程序(三)

MyMinimad ── Linux下用libmad写的mp3解码播放程序 MyMinimad ── Linux下用libmad写的mp3解码播放程序(二) csdn的博客帐号当年那个事件中被盗了,相应的邮箱也被盗了,这次写在这里。 /*...

2019/10/27 00:18
197
非c++1x实现UniquePtr

#ifndef UNIQUEPTR_H #define UNIQUEPTR_H template<typename _T> struct default_delete { void operator()(_T *ptr) { delete ptr; } }; template<typename _T, typename _D......

2019/10/23 12:15
13
GB18030Cut

int GB18030Cut(const unsigned char *buf, int max) { int i = 0; for (; i < max;) { if (0 == buf[i]) { break; } if (buf[i] <= 0x7F) ......

2019/10/23 12:01
28
算法导论2nd 10.2-8 单指针双向链表

思路:按提示是将指针转换为整型数,然后做异或保存为np。我们知道对于异或操作来说,如果c = a ^ b,那么c ^ a = b且 c ^ b = a。也就是说对于异或的结果,可以根据其中一个原操作数解出另一...

2019/06/22 16:48
37
fedora dnf.repo

# change /etc/dnf/dnf.conf: gpgcheck=0 [fedora] name=Fedora $releasever - $basearch baseurl=https://mirrors.tuna.tsinghua.edu.cn/fedora/releases/$releasever/Everything/$basearch...

2019/05/26 19:38
8
算法导论2nd 10.1-7

思路:两个队列q1和q2,两个队列指针pusher和poper分别指向q1和q2,push时调用pusher->enqueue,然后将poper里的元素全部dequeue并enqueue到pusher,最后交换pusher和poper。 #include <iost...

2019/05/14 17:20
14
算法导论2nd 10.1-4

两个细节 循环数组的实际size为n+1 enqueue时tail和head不允许重合(保证元素个数为n),dequeue时可以重合 class Queue { int *array; int head, tail, size; Queue(Queue &&q) = delete; ....

2019/05/14 10:08
15
算法导论2nd 9.1-1

为方便处理,设输入规模n为2的次方。 算法:将数组划分成对,比较选出最小的元素,这些选出的最小元素再次划分成对,再比较选出最小元素,重复这个过程,直到找出整个数组的最小元素。这个过...

2019/05/07 01:19
110
C++引用计数原理和实现

引用计数主要用于自动垃圾回收,C++程序直接运行于cpu,本身是没有垃圾回收功能的,但可以通过引用计数实现一个带半自动垃圾回收功能的类,之所以称之为半自动,典型的是因为它不像java/pyth...

2019/04/17 13:34
231
shared_ptr源码分析

源码来自llvm 8.0.0的libc++,精简了一些不太重要的部分,重要的地方加了注释。目的是学习智能指针的实现原理。关于shared_ptr的线程安全问题,cppreference上的描述: All member functions...

2019/04/15 23:06
581
epoll源码分析

按如下流程来分析epoll: 系统级的初始化 创建epollfd 向epollfd添加fd(本文只关心添加) 事件到来,激活唤醒 epoll_wait 系统级的初始化 static int __init eventpoll_init(void) { struc...

2019/04/11 23:08
19
C++ Simple declaration

C++是静态类型语言,提供了丰富的数据类型,它的简单声明的文法如下(摘自C++11标准): simple-declaration: decl-specifier-seq(opt) init-declarator-list(opt) ; attribute-specifier-se...

2019/04/11 11:49
23
通过N个线程顺序循环打印从0至100

如: 通过N个线程顺序循环打印从0至100,如给定N=3则输出: thread0: 0 thread1: 1 thread2: 2 thread0: 3 thread1: 4 ..... 解:N个线程对应N个条件变量,依次激活下一个线程 #include <iost...

2019/03/17 21:27
81
Linux kernel 4.20之select/poll

结论 两者都基于struct poll_wqueues(poll机制),调用file.f_op->poll获得事件mask; select以事件类型为切入点,poll以fd为切入点; 磁盘文件不可以poll。 核心代码 struct poll_table_st...

2019/01/28 17:03
197
Linux kernel 4.20 socket源码分析

结论 基于unix“一切皆文件”的思想,创建名为sockfs的伪文件系统(挂载点为socket:,由于不是/,所以无法直接看到,但可以通过ls -l /proc/$pid/fd/看到),实现通用文件系统的操作接口,这...

2019/01/15 22:14
216
/etc/profile.d/prompt.sh

git_prompt() { local prompt= local branch=`git branch 2>/dev/null | sed -n 's/^* //p'` test -z $branch && return local status=$(git status -s | awk '{a[$1]+=1}END{for(i in a)pri...

2018/12/24 18:04
33
grub.cfg

set uuid=2C69-9ECA menuentry "Windows" { insmod ntfs set root=(hd0,1) chainloader +1 } menuentry "LMT ISO" { search --set=root --fs-uuid $uuid loopback loop /LMT.ISO......

2018/12/24 17:50
237
fontconfig.local

<?xml version="1.0"?> <!DOCTYPE fontconfig SYSTEM "fonts.dtd"> <fontconfig> <match target="pattern"> <test qual="any" name="family"> <string>monospace</string> </test> <e......

2018/12/24 17:49
0

没有更多内容

加载失败,请刷新页面

返回顶部
顶部