Tôi muốn tiếp tục thực hiện chương trình C trên máy tính của mình. Nó không thực sự phải "làm" bất cứ điều gì cho đến khi nó xác định một event
mặc dù.Có cách nào thích hợp để viết chương trình chạy liên tục
Ví dụ: chương trình C có thể được viết bằng vòng lặp do while
không bao giờ thoát. Bên trong vòng lặp, có thể có một điều kiện if else
lắng nghe một số event
. Cho phép nói "if
một tệp tồn tại trong một thư mục, sau đó mở tệp và làm điều gì đó, else
nghỉ giải lao và sleep(60)
trong một phút".
Tất nhiên, chức năng này có thể được triển khai bên ngoài chương trình C. Tôi có thể chạy cùng một ý tưởng ở trên trong tập lệnh shell ... "if
một tệp tồn tại trong một thư mục, sau đó chạy chương trình C, else
nghỉ ngơi và sleep(60)
trong một phút". Tôi cũng có thể viết một kịch bản lệnh shell để thực hiện chương trình C nếu một tệp tồn tại và chạy chương trình shell với một crontab
hoặc một số trình lập lịch biểu khác.
Nếu tôi không chạy sleep
hoặc tôi đặt crontab
thành tần suất rất cao, thì rõ ràng thời gian phản hồi của tôi sẽ cải thiện. Trong khi đó sẽ là lý tưởng, tôi có nghi ngờ của tôi đó là một cách an toàn và thích hợp để làm điều này. Tôi về cơ bản muốn chương trình của tôi luôn sẵn sàng hành động ... một số event
xảy ra, hãy làm việc!
Vì tôi chưa bao giờ triển khai một chương trình như vậy, câu hỏi của tôi là, có cách thích hợp và an toàn để tạo một "người nghe sự kiện" phục vụ loại chức năng này không? Cách tiếp cận C vs shell? Những ý tưởng khác?
Tùy thuộc vào sự kiện. 'man select', và' man epoll'. –
Như để xem một thư mục nói chung, và không cho sự tồn tại của một tập tin cụ thể, cũng xem ví dụ ['man inotify'] (http://man7.org/linux/man-pages/man7/inotify.7.html). Có thể được sử dụng để kiểm tra xem một tập tin cụ thể được tạo ra trong thư mục mặc dù. –
@WilliamPursell Gắn bó với bối cảnh câu hỏi của tôi, sự kiện sẽ là "sự tồn tại của một tệp". Tôi sẽ kiểm tra từng cái trong số đó mặc dù – ThatsRightJack