gpt4 book ai didi

c - 服务器处理多个客户端 - C 系统编程

转载 作者:行者123 更新时间:2023-11-30 17:32:00 25 4
gpt4 key购买 nike

我有服务器,包含一个 file.txt。我有多个客户端可以读取/写入此文件(在服务器上找到)。我希望在处理写请求时锁定其他写请求。但是,读取请求永远不会被锁定。有人知道哪一个最适合处理这种竞争条件?我想我可以通过在服务器中为每个客户端建立一个结构来解决这个问题,其中每个结构包含“客户端的IP地址”,以及“用于启用对客户端的写入的标志”和某种互斥体。我希望我说得足够清楚:)感谢任何反馈!

最佳答案

听起来你想要 reader-writer locks 。实际的读取器和写入器是远程客户端这一事实只是一个小细节,因为实际的读取器和写入器只是服务器端的线程。

链接的维基百科文章提到了 pthread_rwlock_t,它是由 POSIX 定义的,应该可以通过 pthreads 获得。在现代 Linux 发行版上。

更新:根据OP的评论,他正在尝试跨进程同步文件访问。这意味着他应该使用 flock ,以及 this answer 中提到的警告.

关于c - 服务器处理多个客户端 - C 系统编程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24380367/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com