QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 780|回复: 3

SDL中的错误!谢谢指教!

[复制链接]
发表于 2004-5-25 10:58:01 | 显示全部楼层 |阅读模式
我的SDL程序,运行时没问题!
但是当我关掉程序时,出现如下错误(不过还能关掉)

X Error of failed request:  BadDrawable (invalid Pixmap or Window parameter)
  Major opcode of failed request:  147 (MIT-SHM)
  Minor opcode of failed request:  3 (X_ShmPutImage)
  Resource id in failed request:  0x2a0000d
  Serial number of failed request:  2253
  Current serial number in output stream:  2250

在这个程序里面,我引入了多进程机制!
开始时,出现的错误更多,后来,我改进了程序的退出方式
,以防止子进程和父进程在退出时多次调用SDL_Quit()关闭SDL
结果就剩下这个错误了,

请经验丰富的SDL高手,帮忙一下
 楼主| 发表于 2004-5-25 11:51:00 | 显示全部楼层
谢谢!
我已经解决了这个问题!
回复

使用道具 举报

发表于 2004-5-25 14:08:16 | 显示全部楼层
....
说说咋解决的呀
回复

使用道具 举报

 楼主| 发表于 2004-5-25 22:47:40 | 显示全部楼层
在以前的编程中,当需要父进程结束子进程时,
我常常用kill(childpid,SIGINT),这样就形成了思维定势!
这次我作的这个程序(父子多进程),我也是这样调用的,
当关掉整个程序时,父进程首先得强行杀死子进程,然后退出,
但是,这样退出时,总有一些或多或少的错误出现(我现在也不明白,以前的程序中没有出现过,可能是这次这个程序使用了SDL的缘故吧),

无意中,我尝试把kill(childpid,SIGINT) 改为 kill(childpid,SIGKIILL)
发现再也没有错误了!
应该是 子进程对 SIGINT 与SIGKILL信号的反应不同的缘故吧!
我去年学过操作系统,我们学校的教学模式是CASE STUDY,
我们的研究对象是minix,任务是阅读内核代码!
那里面好像关于内核对SIGINT 与SIGKILL的处理!
不过现在早忘了,正打算去看看!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-11-8 06:47 , Processed in 0.035143 second(s), 16 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表