Giám sát hệ thống tệp bằng inotify
Giới thiệu về inotify
Từ kernel Linux 2.6.13, Linux đã giới thiệu inotify – cơ chế cho phép theo dõi một tập hợp các sự kiện được chỉ định trên tệp hoặc thư mục, ví dụ như mở, đóng, di chuyển/đổi tên, xóa, tạo mới hoặc thay đổi thuộc tính.
inotify cung cấp các API sau:
inotify_init
#include <sys/inotify.h>
int inotify_init(void);
int ...
Đăng vào ngày 14 tháng 8 lúc 11:17
Thực hiện quản lý luồng bằng cơ chế hàng đợi tác vụ
Nguyên lý hoạt động của bộ xử lý luồng
Trong hệ thống đa luồng, một bộ xử lý luồng (thread pool) là phương pháp tối ưu nhằm giảm thiểu chi phí tạo và hủy bỏ luồng liên tục. Cơ chế hoạt động dựa trên việc duy trì một hàng đợi tác vụ chung, nơi các luồng sản xuất (producer threads) đưa công việc vào, còn các luồng tiêu thụ (worker threads) sẽ tự ...
Đăng vào ngày 9 tháng 8 lúc 13:07
Quản lý Chuỗi Ký tự trong Ngôn ngữ C - Hướng dẫn Chi tiết
Mở đầu
Trước khi bước vào thế giới lập trình, hãy cùng chiêm ngưỡng vẻ đẹp của những vần thơ và cảnh sắc hữu tình.
Phần 1: Quản lý Bộ nhớ Thủ công cho Chuỗi Ký tự trong C
1. C không có kiểu dữ liệu chuỗi
"Xin chào thế giới.\n"
Chuỗi ký tự được đặt trong dấu ngoặc kép (Double Quote) được gọi là hằng chuỗi (String Literal) hoặc đơn gi ...
Đăng vào ngày 2 tháng 8 lúc 01:59
Ứng Dụng Kiểu Dữ Liệu `struct` và `enum` trong Ngôn Ngữ Lập Trình C
Bài viết này giới thiệu một số ví dụ thực tế về việc sử dụng kiểu dữ liệu cấu trúc (struct) và kiểu liệt kê (enum) trong ngôn ngữ lập trình C. Các ví dụ bao gồm quản lý thông tin sách, xử lý ngày tháng, quản lý tài khoản người dùng và danh bạ liên lạc, minh họa cách tổ chức dữ liệu phức tạp và thực hiện các thao tác xử lý cơ bản.
1. Quản Lý Th ...
Đăng vào ngày 28 tháng 7 lúc 03:14
Những Khái Niệm Cơ Bản Về Bộ Nhớ, Biến Và Hằng Trong Lập Trình C
Khi bắt đầu tìm hiểu về ngôn ngữ lập trình C, việc nắm vững các khái niệm cơ bản về cách máy tính quản lý bộ nhớ, cũng như cách khai báo và sử dụng biến và hằng là vô cùng quan trọng. Bài viết này sẽ đi sâu vào những yếu tố nền tảng đó.
I. Bộ Nhớ Máy Tính
Bộ nhớ máy tính là một thành phần phần cứng thiết yếu, chịu trách nhiệm lưu trữ d ...
Đăng vào ngày 27 tháng 7 lúc 20:46
Đọc mã nguồn Redis 5.0.7 - Cấu trúc dữ liệu Skip List
Cấu trúc skip list trong Redis không được định nghĩa trong hai tệp riêng biệt. Trong phiên bản 5.0.7, khai báo và định nghĩa cấu trúc được đặt trong tệp server.h, trong khi các hàm liên quan được định nghĩa trong tệp t_zset.c, tất cả các hàm bắt đầu bằng zsl.
I. Cấu trúc dữ liệu
typedef struct zskiplistNode {
// khóa, duy nhất
sds ele;
...
Đăng vào ngày 13 tháng 7 lúc 08:50
Flexible Array Members trong C: Ứng dụng và kỹ thuật thực tiễn
Đặc điểm của Flexible Array Members
Flexible Array Members (FAM) là tính năng được thêm vào C99 cho phép khai báo mảng không xác định kích thước trong cấu trúc dữ liệu. Đặc điểm nổi bật:
Kích thước xác định tại thời điểm chạy
Không chiếm không gian cố định trong cấu trúc
Phải là thành viên cuối cùng của struct
Ví dụ minh họa
Xét cấu trúc Doc ...
Đăng vào ngày 4 tháng 7 lúc 19:39
Thao tác mảng và chuỗi trong lập trình C
1. Kiểm tra cấu trúc mảng 1 chiều
#include <stdio.h>
#define KICH_THUOC 4
void kiemTraInt() {
int intArray[KICH_THUOC] = {1, 9, 8, 4};
int i;
printf("Kich thuoc intArray: %d\n", sizeof(intArray));
for(i = 0; i < KICH_THUOC; ++i)
printf("Dia chi %p - Gia tri %d\n", &intArray[i], intArray[i]);
...
Đăng vào ngày 3 tháng 7 lúc 13:22
Hiểu về Kỹ Thuật Chèn Định (Interpositioning) trong Ngôn ngữ C
Giới thiệu
Kỹ thuật chèn định (interpositioning) trong C là một phương thức mạnh mẽ cho phép lập trình viên ghi đè các hàm thư viện chuẩn bằng cách định nghĩa lại chúng trong chương trình của mình. Điều này tuy hữu ích nhưng cũng tiềm ẩn nhiều rủi ro nếu không được hiểu rõ.
Ví dụ 1: Tùy biến hàm strlen
Xem xét đoạn mã sau:
#include
#include ...
Đăng vào ngày 30 tháng 6 lúc 18:57
Thực Hành Các Thuật Toán Căn Bản với Ngôn Ngữ C
Bài viết này khám phá một loạt các bài tập lập trình cơ bản bằng ngôn ngữ C, bao gồm các thuật toán xử lý dữ liệu số, tính toán số học, và các kỹ thuật lập trình đệ quy. Mỗi phần trình bày một vấn đề, giải pháp bằng mã C, và phân tích các khía cạnh quan trọng của việc triển khai.
Bài tập 1: Chuyển đổi điểm số thành xếp loại
Chức năng chính là ...
Đăng vào ngày 26 tháng 6 lúc 18:58