Linux
Linux
Michael_Good
脚踏实地,不负时光!
展开
-
【C/C++】实现高性能日志轮转功能,已实测
这个程序会检查日志文件的大小,如果超过预设的大小限制,则将当前日志文件重命名,并创建一个新的日志文件。因此,压缩操作通常在日志文件轮转时执行,此时日志文件被关闭,不再有新的写入操作。如果当前日志文件的大小超过了预设的限制,它会将当前日志文件重命名为包含当前时间戳的新文件名,并创建一个新的空日志文件。确保压缩过程中的数据完整性涉及多个方面,包括文件的完整性、压缩过程的正确性以及压缩后文件的可用性。:在压缩之前,确保当前正在写入的日志文件被关闭,以避免在压缩过程中写入数据。:压缩完成后,删除原始的旧日志文件。原创 2024-06-17 23:56:47 · 956 阅读 · 0 评论 -
【C/C++】工业级别的日志文件轮转策略原理
日志文件轮转(Log Rotation)是一种日志管理策略,用于自动管理日志文件的大小和数量。随着应用程序运行时间的增加,日志文件可能会变得非常大,这不仅会占用大量的磁盘空间,还可能影响应用程序的性能。日志文件轮转通过定期地将当前的日志文件重命名或移动到另一个位置,并创建一个新的日志文件来解决这个问题。:当日志文件达到预设的最大大小时,轮转会自动发生。是一个常用的日志文件轮转工具,它能够自动处理日志文件的轮转、压缩和删除。:在轮转过程中,旧的日志文件可以被压缩或归档,以节省磁盘空间并便于长期存储。原创 2024-06-17 23:39:54 · 272 阅读 · 0 评论 -
【后端技术】Nginx配置文件基本说明和使用,亲测可行
Nginx 是一个高性能的 HTTP 和反向代理服务器,以及 IMAP/POP3 代理服务器。它以其高性能、稳定性、丰富的功能集、简单的配置和低资源消耗而闻名。配置文件的修改通常需要重启 Nginx 服务以使更改生效。在实际使用中,你可能需要根据自己的需求添加或修改配置。例如,如果你需要配置 SSL/TLS 加密通信,你可能需要添加。如果有错误,它会指出错误的位置和原因。相关的配置块,并指定证书和密钥文件的位置。如果你需要配置反向代理,你可能需要在。,但具体位置可能会根据你的操作系统和安装方式有所不同。原创 2024-06-09 20:34:26 · 114 阅读 · 0 评论 -
【Linux】Linux定时器使用及代码案例
在 Linux 中,可以使用定时器来实现一些定时任务,例如定时发送信号、定时执行某个函数等。设置定时器参数:然后需要设置定时器的参数,包括定时器的类型、定时器的超时时间、定时器的回调函数等。定义定时器结构体:首先需要定义一个定时器结构体,用于存储定时器的相关信息。启动定时器:最后需要启动定时器,使其开始计时。函数启动了定时器,并设置了定时器的超时时间和回调函数。函数注册了一个信号处理函数,用于处理定时器超时时的信号。函数来启动定时器,并设置定时器的超时时间和回调函数。函数创建了一个定时器,并使用。原创 2023-05-11 17:10:55 · 1615 阅读 · 0 评论 -
【Linux】Makefile 编写教程
该Makefile可以根据实际情况进行修改,例如添加头文件路径、库文件路径和库文件等。:目标文件规则,依赖于对应的源文件,使用编译器。:目标程序规则,依赖于目标文件列表。原创 2023-05-10 15:59:31 · 1131 阅读 · 0 评论 -
【Linux】error: implicit declaration of function ‘sleep’ [-Werror=implicit-function-declaration]
选项,那么编译器会将所有警告视为错误,导致编译失败。如果不想让这个警告成为错误,可以使用。函数是一个标准库函数,用于让程序暂停一段时间。因此,如果要在代码中使用。这个错误提示是因为在代码中调用了。在这个例子中,我们在代码中包含了。需要注意的是,如果在编译时启用了。头文件,导致编译器无法识别。选项来禁用这个警告。函数,需要在代码中包含。的警告,编译也不会失败。原创 2023-05-10 10:54:18 · 2946 阅读 · 1 评论 -
【Linux】Linux 平台获取指定目录文件列表
参数是要打开的目录名,可以是绝对路径或相对路径。参数是要关闭的目录流指针。如果关闭成功,返回 0,否则返回 -1。函数,直到读取到所有的目录项。每次读取到一个目录项后,可以使用。函数返回的目录流指针。如果读取成功,返回一个指向。类型的指针,表示读取到的目录项。函数打开要遍历的目录,该函数返回一个指向。类型的指针,表示打开的目录流。函数读取目录中的文件,该函数返回一个指向。函数关闭目录流,释放资源。函数,读取目录中的文件,最后使用。在上面的例子中,首先使用。类型的指针,否则返回。类型的指针,否则返回。原创 2023-05-08 20:58:55 · 1378 阅读 · 1 评论 -
【Linux】Linux 平台实现插件式架构
下面是一个简单的 Makefile 文件,用于编译生成名为。的函数,用于计算两个整数的和。在上面的例子中,首先使用。的共享库文件,可以使用上面的例子来加载并调用其中的函数。在上面的 Makefile 文件中,首先定义了。需要注意的是,这里使用了。目标,用于清除生成的目标文件和共享库文件。目标,用于编译生成目标文件。目标,即编译生成源文件。要解决这个错误,可以在编译时添加。的共享库,其中定义了一个名为。命令即可编译生成共享库文件。函数加载共享库,然后使用。编译完成后,会生成一个名为。原创 2023-05-08 20:29:42 · 653 阅读 · 0 评论 -
【Linux】 Linux 平台如何查看SO符号表
该命令会输出共享库中的所有符号列表,包括函数和变量,以及它们的地址和类型等信息。需要注意的是,共享库中的符号可能会被重命名或隐藏,以避免命名冲突和符号泄露等问题,因此需要遵循一定的规范来管理共享库中的符号。表示要查看的共享库文件名,可以是绝对路径或相对路径。命令来查看一个共享库(也称为动态链接库或。文件)中的符号(函数或变量)列表。在 Linux 平台上,可以使用。(显示 C++ 符号名)和。表示选项,常用的选项有。(显示调试符号表)等;(显示动态符号表)、原创 2023-05-08 20:23:30 · 3649 阅读 · 0 评论 -
【Linux Shell】 整数大小比较
shell中整数大小比较。原创 2023-04-10 15:43:18 · 913 阅读 · 0 评论 -
Linux Kernel - 关于 sock_def_readable 的探讨
在 sock_def_readable 函数中,内核会首先检查套接字的 sk->sk_shutdown 是否包含 RCV_SHUTDOWN 标志,如果是,则表示套接字已经关闭接收端,不再可读。例如,TCP 套接字的 sock->ops->poll 函数会检查接收缓冲区是否有数据可读,而 UDP 套接字的 sock->ops->poll 函数则会直接返回 1,表示套接字始终可读。对于可读条件,内核会调用套接字的 sock->ops->poll 函数,该函数会返回一个掩码,表示套接字是否可读。原创 2023-04-07 08:58:47 · 328 阅读 · 0 评论