我不确定是否有人使用 Borland c++ 3.1,但我必须这样做。
我有一个程序可以实现简单的线程并通过定时器中断改变这些线程的上下文。
我有一个无限循环和 2 个线程,它们完成各自的工作并在彼此和主线程之间切换。他们的工作是产生一些输出,在控制台上写一些东西。 问题是每次我运行程序时,都会发生不同的事情。
有时它只工作半分钟就停止写它应该写的东西。写就停止了,没有错误,borland 也没有崩溃。 有时它停止并且 borland 崩溃而没有消息。 有时它会停止并且 borland 崩溃并显示“非法指令”消息 有时在它停止之前写入的最后一行是一些不应该在输出中的奇怪字符。
是控制台“满”而borland行为怪异吗? 有什么问题?
最佳答案
如果我没记错的话,在 DOS 下从中断调用时写入控制台(或使用文件 I/O)是不安全的。要正确执行此操作,您必须检查称为“DOS 重新进入标志”的东西,并且只有在它为零时才写入控制台(请参阅 http://cs.smith.edu/~thiebaut/ArtOfAssembly/CH18/CH18-3.html 或在网上搜索更多信息)
关于c++ - Borland C++ 在没有消息的情况下崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12255150/