用户打开程序时,如何在C中递增整数?

问题描述

我目前正在写一个基于文本的冒险游戏,并且有一个终生计数器。我想知道是否有可能在启动游戏时不使用文件增加生命周期计数器?

我正在使用Windows 10 x64。

解决方法

这是特定于操作系统的,因为C11草案标准n1570确实提到了文件(在第7.21节中),而没有提及persisting data的其他方式。 / p>

您可以考虑使用一些database,例如sqlite库或PostGreSQLMongoDB。可能是矫kill过正。

您可以考虑以某种文本格式(例如this draft)保留持久性数据(如RefPerSys报告中所建议的,或在JSON软件中以C ++进行编码)。 garbage collection中的概念和术语可能是相关的(例如Cheney's algorithm)。至少阅读旧的Uniprocessor Garbage Collection Techniques论文中的术语。

您可能对web services感兴趣,使用libcurl和/或libonion和/或Wt。在此之前,请阅读与HTTP相关的文档。您可以考虑使用JSONRPCSWIG

在Linux上,您可以考虑将共享存储器或interprocess communication的其他方式与几个processes配合使用,请参阅shm_overview(7)sem_overview(7)fifo(7),{{ 3}},unix(7)和其他poll(2)(以及syscalls(2))。然后阅读atexit(3)

在Windows上,您需要阅读Advanced Linux Programming

您可能对documentation of the WinAPI标准和POSIXGTK之类的跨平台库感兴趣。两者都经常在游戏软件中使用。

请注意,libSDL具有一些持久性机制(另请参见SBCL)。您可能会从其this中获得启发。您也可以用save-lisp-and-die primitive编写游戏的一部分,并利用Ocaml的Ocaml。您可以在游戏软件中Marshal module(或embed PythonGNU guile)使用其Lua功能。即使您不使用SBCL或Ocaml进行编码,也可以从其运行时C代码中汲取灵感。

我目前正在写一个基于文本的冒险游戏,并且有一个终生计数器。

然后(出于启发目的)在persistence上的现有游戏的源代码中查找。