运行一个带有界面的程序时,如果此界面已打开,则使用已打开的界面?如何设计

运行一个带有界面的程序时,如果此界面已打开,则使用已打开的界面?怎么设计
我在linux下用C的gtk库写一个界面。
有这样的需求,当运行一个已经打开的界面时,如果此界面已经打开,则运行已有的界面
这样的效果是不是有什么方法,或者专业术语?

我猜想其中是不是使用信号来做的,对此不了解,还请各位给以帮助,谢谢!

------解决方案--------------------
将这个窗口写成单例对象,即构造函数定义成私有,然后提供一个仅有的获取该窗口对象的静态方法供外部调用,这样,该窗口就只能有一个对象,如果第一次调用,则去创建该窗口对象,如果后面再调用,则是使用之前已经创建的对象,即同一个窗口对象了。
------解决方案--------------------
你需要用一些全局的东西来作
比如命名的管道,你先偿试打开,打不开就创建,并监听
打得开说明已经有人创建了,发个消息给管道,监听那头也就知道有新的实例启动了
------解决方案--------------------
一个简单的方法是你在调用system之前,先查看一下当前是否已经有界面进程在运行,如果没有则调用system打开,有则将该进程置到当前活动界面。