Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1300347
  • 博文数量: 548
  • 博客积分: 7597
  • 博客等级: 少将
  • 技术积分: 4224
  • 用 户 组: 普通用户
  • 注册时间: 2010-12-15 13:21
个人简介

嵌入式软件工程师&&太极拳

文章分类

全部博文(548)

文章存档

2014年(10)

2013年(76)

2012年(175)

2011年(287)

分类: LINUX

2011-03-03 23:35:20

一个主界面上面有控件,点击控件之后出现一个脱离主界面的运用程序,然后将主界面杀死
#include
#include
#include
void *job(void *arg)
{
    printf("%s %d: pid = %d, self = %p\n", __func__, __LINE__, getpid(), pthread_self());
        pthread_detach(pthread_self());
        int papid = getpid();
        system("./1");
        int ret = kill(papid, SIGKILL);
        if(ret)
        {
                printf("kill failled");
        }
        return NULL;
}
int main(void)
{
    pthread_t tid;
    int ret;
    ret = pthread_create(&tid, NULL, job, NULL);
    if (ret < 0)
    {
        perror("pthread_create");
        return -1;
    }
    printf("%s %d: pid = %d, self = %p\n", __func__, __LINE__, getpid(), pthread_self());
    printf("%s %d: tid = %p\n", __func__, __LINE__, tid);
    ret = pthread_equal(tid, pthread_self());
    if (ret == 0)
    {
        printf("tid is not current thread!\n");
    }
    pthread_join(tid, NULL);
    return 0;
}
-----------------------------------------------------------------------------------
#include
int main(void)
{
        while(1)
        {
                printf("Hello");
        }
        return 0;
}
-------------------------------------------------------------------------------------
    while(1)
        {
                printf("Hello");
                sleep(1);
        }
阅读(1019) | 评论(1) | 转发(0) |
0

上一篇:Qt制作Aero特效窗口

下一篇:QSound

给主人留下些什么吧!~~

GFree_Wind2011-03-04 12:19:27

你这样做不对吧。
1. 给指定线程发信号,不能是kill,应该是tkill。如果使用kill的话,是给进程发信号,linux不保证是哪个线程收到这个信号。而且你发的是SIGKILL,那么整个儿进程都退出了,你所谓的子线程又怎么能运行呢——另外,没有子线程的说法。
2. 按照你的设计需求,应该用fork的方式来处理比较好。