- Algorithm
- Search——各种查找算法的实现,以及单元测试和基于google benchmark的性能测试;
- std_search_examples——stl中查找算法的例子;
- Sort——各种排序算法的实现,以及单元测试和基于google benchmark的性能测试;
- std_sort_examples——stl中排序算法的例子;
- Search——各种查找算法的实现,以及单元测试和基于google benchmark的性能测试;
- BinaryTree——二叉树的相关操作,插入、移除、查找、打印;
- Breakpad——google breakpad的简单封装;
- ByteOrder——判断系统的字节序;
- Client——一个简单的Linux select socket客户端;
- CountDownLatch——使用std::mutex和std::condition_variable实现的简单倒计时门闩(std::latch c++20);
- Crashpad——google crashpad的简单封装;
- Curl——curl的简单使用;
- TcpClient——使用curl实现的简单tcp客户端;
- HttpClient——使用curl实现的简单http同步客户端;
- HttpClientAsync——使用curl实现的简单http异步客户端;
- DesignPattern——设计模式的一些例子;
- Factory——工厂模式;
- MVC——mvc模式;
- Observer——观察者模式;
- Singleton——单例模式;
- GlobMatch——glob模式匹配的简单实现;
- Glog——google glog的例子;
- Icmp——linux icmp协议的简单封装;
- LinkedList——链表的相关操作,插入、移除、反转、打印;
- Memcpy——
memcpy
函数实现; - MonitorDir——windows(
ReadDirectoryChangesW
),macos(FSEvents
)和linux(fanotify
和inotify
)目录监控的简单例子;fanotify
中使用global
模式,在fanotify_mark
中加入FAN_MARK_FILESYSTEM
(需要CAP_SYS_ADMIN
能力,即root权限)这个flag
,可以所有在指定文件系统上的事件都会被监控,然后可以根据指定的监控的文件夹目录过滤需要的事件,这个功能比inotify
更强大;- 获取事件发生文件所在的上级路径中,使用了
open_by_handle_at
这个方法,普通用户下会出现Operation not permitted
错误,也需要CAP_SYS_ADMIN
能力,即root权限; - 建议使用root权限运行,如果一定要在普通用户下运行,还是建议使用
inotify
而不是fanotify
,反正在打开一个监控文件描述符(fd
)的情况下,都无法实现subtree
监控;
- 获取事件发生文件所在的上级路径中,使用了
- MonitorDir_EFSW——使用efsw实现的目录监控的简单例子;
- Mutex——使用std::atomic_flag实现的简单互斥锁和自旋锁;
- OpenSSL——openssl的一些例子;
- Server——linux server的一些例子;
- server_epoll——epoll的例子;
- server_poll——poll的例子;
- server_select——select的例子;
- Thread——基于std::thread实现的线程类,包括线程池;
- Thread——线程类;
- ThreadPool——线程池;
-
Notifications
You must be signed in to change notification settings - Fork 2
分享一些代码
License
RealChuan/Cpp-Examples
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
About
分享一些代码
Topics
Resources
License
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published