Đây là một kịch bản khá cơ bản nhưng tôi không tìm thấy quá nhiều tài nguyên hữu ích. Tôi có một chương trình C++ chạy trong Linux mà không xử lý tập tin. Đọc các dòng, thực hiện các phép chuyển đổi khác nhau, ghi dữ liệu vào cơ sở dữ liệu. Có một số biến nhất định (được lưu trữ trong cơ sở dữ liệu) ảnh hưởng đến quá trình xử lý mà tôi hiện đang đọc ở mỗi lần lặp vì tôi muốn xử lý được cập nhật nhất có thể, nhưng độ trễ nhỏ là OK. Nhưng những biến đó thay đổi khá hiếm khi, và số lần đọc rất tốn kém theo thời gian (10 triệu hàng cộng thêm một ngày). Tôi có thể giải phóng các lần đọc cho mỗi lần lặp lại n hoặc đơn giản là khởi động lại chương trình khi biến thay đổi, nhưng những biến đó dường như bị hack.Xử lý tín hiệu cơ bản trong C++
Điều tôi muốn làm thay vào đó là chương trình kích hoạt đọc lại các biến khi nhận được SIGHUP. Tất cả mọi thứ tôi đọc về xử lý tín hiệu đang nói về thư viện tín hiệu C mà tôi không chắc chắn làm thế nào để buộc vào các lớp học của chương trình của tôi. Các thư viện tín hiệu Boost dường như được nhiều hơn về giao tiếp giữa các đối tượng hơn là xử lý các tín hiệu OS.
Ai đó có thể trợ giúp? Nó có vẻ như thế này là vô cùng đơn giản, nhưng tôi khá gỉ với C++.
Oh duh. Tôi đã hoàn toàn overthinking nó và quên rằng các biến tín hiệu là những gì tôi muốn chứ không phải là invocation trực tiếp. * headdesk * – KernelM
Nếu bạn muốn tuân thủ các tiêu chuẩn, hãy đảm bảo đủ điều kiện trình xử lý tín hiệu của bạn là 'extern' C '' –
@R Samuel: Đó là một điểm tuyệt vời.Tôi thậm chí còn không nghĩ về 'extern' C ''vì tôi đang viết mã C, nhưng OP sẽ cần nó! –