Tôi đang viết một chương trình cho POSIX (OSX), nơi tôi sẽ có nhiều quy trình gửi tin nhắn đến một người nghe, chủ yếu là một chuỗi ghi nhật ký. Tất cả các tiến trình đang chạy trong các chương trình riêng biệt, và sử dụng một ống có tên duy nhất (FIFO) mà nhiều tiến trình ghi vào, nhưng chỉ một tiến trình đọc duy nhất là rất hấp dẫn.Có ảnh hưởng nào đến việc có nhiều quy trình ghi vào một đầu đọc đơn trên một ống có tên trong posix không?
Câu hỏi:
1) Thao tác này có hoạt động không? - Tôi có thể làm công việc này bằng cách sử dụng bash để thiết lập một FIFO với nhiều quy trình viết cho nó, vì vậy tôi biết về lý thuyết công trình này. Nhưng trong thực tế, có vấn đề gì tôi đang che đậy?
vỏ # 1
$ mkfifo /tmp/fifo
$ cat /tmp/fifo
vỏ # 2 và # 3
$ cat > /tmp/fifo
"Type stuff here, after hitting enter, it is read by shell #1"
2) Nếu mỗi nhà văn chỉ viết thông điệp tương đối ngắn (< 100 byte?) Sau đó tôi có thể giả định rằng mỗi cuộc gọi để viết() sẽ được gửi đến người đọc trong toàn bộ nó? Hoặc sẽ một nửa của một tin nhắn có nguy cơ bị cắt xén với một nửa thông điệp khác từ một nhà văn khác?
cảm ơn lời khuyên nào.
bạn đang chào đón :) – sfossen