【发布时间】:2015-06-26 07:44:54
【问题描述】:
我正在用 C 语言开发一个小软件,它可以在布告栏上读取和写入消息。每条消息都是一个以渐进式数字命名的 .txt。
该软件是多线程的,有很多用户可以进行并发操作。
用户可以进行的操作有:
- 阅读整个布告栏(所有 .txt 文件内容的串联)
- 添加消息(添加名为“id_max++.txt”的文件)
- 删除消息。删除消息后,该数字中将出现一个永远不会被填满的空洞(例如,“1.txt”、“2.txt”、“4.txt”)。
现在,我想知道是否有一些 I/O 问题 (*) 我应该管理(以及如何)或操作系统(类 Unix)自己解决所有问题。
(*) 比如2个用户想要读取和删除同一个文件
【问题讨论】:
-
说真的,使用数据库,而不是文件系统。此外,您的描述并没有让我相信您应该使用多个线程。
-
我知道使用 db 更简单,但在我的规范中是不允许的...
-
程序员最重要的职责就是告诉比你更笨的人为什么规范是错误的。
-
如果你想通过大学考试,那就不要了。该考试专门针对 C/Unix,与 DB 无关。
-
然后失败。尝试执行此任务将违反道德规范。
标签: c multithreading file-io concurrency