社区
系统维护与使用区
帖子详情
C程序如何同时做2件事?
binb
2000-06-11 12:03:00
加精
UNIX C编程有这样一个问题:某程序运行后,要同时做两件事
待其中一件事完毕,另一件事(放音乐)终止,
好象通过多线程可完成这个问题,但不知如何做?
最好有例子程序!
谢谢
...全文
468
8
打赏
收藏
C程序如何同时做2件事?
UNIX C编程有这样一个问题:某程序运行后,要同时做两件事 待其中一件事完毕,另一件事(放音乐)终止, 好象通过多线程可完成这个问题,但不知如何做? 最好有例子程序! 谢谢
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
hem
2001-05-18
打赏
举报
回复
参考
halfdream
2000-06-12
打赏
举报
回复
在UNIX类的操作系统上用多进程很方便。
用fork() 产生子进程,然后通过判断pid 的值知道是哪个进程。
呵呵,听了你提的第二个问题,觉得
你确实该看看书。 就算一般的操作系统书上都提过这些的。
fjp
2000-06-12
打赏
举报
回复
提供一个例子,供你参考.
#include <stdio.h>
#include <signal.h>
void sig(int signo)
{
//子进程接到信号后做一些终止前的善后工作
exit(0) ;
}
void ChildFunc()
{
//播放音乐等后台进程
}
void ParentFunc()
{
//父进程工作函数
}
////////////////////////////////////////////////////////////////////
main()
{
int pid ;
switch((pid = fork()))
{
case 0 : //child process
if(signal(SIGUSR1, sig) == SIG_ERR)
{
perror("signal") ;
exit(-1) ;
}
ChildFunc() ;
break ;
case -1 :
perror("fork") ;
break ;
default : //parent process
ParentFunc() ;
kill(pid, SIGUSR1) ; //工作完后发信号给子进程要求其终止
wait(0) ; //等待子进程终止
break ;
} //switch
printf("program over!\n") ;
}
solar
2000-06-12
打赏
举报
回复
使用线程的例子
// do2things.c
// build: cc -o do2things -Wall do2things.c -lpthread
#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <unistd.h>
#include <pthread.h>
static int ok_to_exit=0;
// function for thread
void * thread_func(void *arg)
{
char *ret_val=(char*)malloc(128);
while(!ok_to_exit){
fprintf(stdout,"I'm working!\n");
}
sprintf(ret_val,"ok,i'll exit");
pthread_exit(ret_val);
return ret_val; // only to avoid warning message at compile time
}
int main(int argc, char* argv[])
{
int i=0;
char *ret_buf;
pthread_t ptid;
// set up the thread to play music in background
pthread_create(&ptid, NULL,thread_func,NULL);
// do your main work ...
for(i=0;i<(1<<26);i++) ;
// your main work complete, end the thread
ok_to_exit=1;
pthread_join(ptid, (void**)&ret_buf);
fprintf(stdout,"thread returned: %s\n",ret_buf);
return 0;
}
binb
2000-06-11
打赏
举报
回复
请问新进程能执行主进程的子程序吗?
最好举个例子!
hu_zy
2000-06-11
打赏
举报
回复
用fork建一个新进程!
kxy
2000-06-11
打赏
举报
回复
哥们儿,你是不是不看书的:)
binb
2000-06-11
打赏
举报
回复
to kxy
虽然也编了几十万行程序,确实很少看书
请推荐几本好书
微信小
程序
系统教程C#版[3/3阶段]_微信小
程序
电商系统
微信小
程序
系统教程[初级阶段],微信小
程序
0基础学起,讲解微信小
程序
开发的基础知识。 微信小
程序
系统教程共有“微信小
程序
系统教程[初级阶段]”、“微信小
程序
系统教程[中级阶段]——核心技术”、“微信小
程序
系统教程[阶段]客服消息+微信支付+九宝电商系统”。 “微信小
程序
系统教程[阶段]全套课程”包含: 1.微信小
程序
系统教程[阶段]_客服消息 2.微信小
程序
系统教程[阶段]_微信支付 3.微信小
程序
系统教程[阶段]_九宝电商系统 学习“微信小
程序
系统教程[阶段]”要求有微信小
程序
的基础。建议先学习“微信小
程序
系统教程[初级阶段]”、“微信小
程序
系统教程[中级阶段]”,后在报名“微信小
程序
系统教程[阶段]”。 阶段讲解的客服消息,是针对小
程序
的。后台
程序
用接近底层的技术,没有使用三方技术。这样降低同学们学习成本。 微信支付,这部分课程很有难度,要求同学们认真听讲,有不会的技术问题可以请教老师。购买课程后请联系老师,提供单号,给你源
程序
。 九宝电商系统是一套十分适和学习、项目的课程。既可以系统的学习微信小
程序
相关知识,还可以修改后上线。 “微信小
程序
系统教程[中级阶段]——核心技术”重点讲解微信小
程序
事
件、组件、API 微信小
程序
系统教程[初级阶段],微信小
程序
0基础学起,讲解微信小
程序
开发的基础知识。 购买课程的同学,可赠送就九宝老师编写的《微信小
程序
开发宝典》。 购课请咨询qq2326321088
访问量千万的小
程序
都是怎么玩的?我总结了一个公式!
用最低的成本、最轻的手法,在微信里获取流量并产生裂变被称之为,当今“最牛运营手段”。用钱买流量已经成了“过去式”,用产品薅流量才是“新姿势”。小
程序
刷屏在微信里薅流量“刷屏”功不可没。但随着用户审美点越来越高,微信的规则越来越严格,“刷屏”的难度也越来越高。尤其是小
程序
,作为一个“流量吸附器”,几乎所有人都在考虑如何用小
程序
吸附甚至是核变出更多流量。当然,世界上任何一件
事
都是有“方法论”的。我们也...
程序
= 数据结构 + 算法?真的是这样的吗?
什么?
程序
竟然等于数据结构 + 算法?这个公式是大师 Niklaus Wirth 在 1976 年提出来的,40 多年过去了,这个公式还成立吗?对于
做
Java 开发的朋友,可能会更加的赞...
Mac显示“您的系统已耗尽应用
程序
内存”时,怎么办?
MacOS基于Unix,这意味着其内存管理非常强大。但是,它并不完美,因此您可能仍然会看到一条错误消息,告诉您“您的系统已耗尽应用
程序
内存。” 这是什么意思,为什么会发生?我们将解释导致错误的原因以及解决方法。 “您的系统已耗尽应用
程序
内存”是什么意思? macOS将用于活动进程的数据存储在RAM中。如果RAM中的空间不足,macOS将开始在主引导驱动器上存储数据,并根据需要在其中与RAM之间交换数据。这称为虚拟内存。因此,引导驱动器上应始终具有相当大的可用空间-10%是一个很好的经验法则。如果启.
微信小
程序
被投诉怎么办?小妙招教给你
每个平台都有属于自己的运营规则,当然作为微信旗下的小
程序
也是一样的,不熟悉小
程序
的运营规则就很容易被封禁账号。要想知道小
程序
被投诉后应该怎么办就应该先了解它的运营规则,这样才会减少被投诉的风险。 小
程序
平台运营规范有哪些? 1、注册提交规范 在注册、提交、运营小
程序
的过程中一定要提供真实有效的相关信息,这样不仅可以帮你快速通过腾讯的审核,同时也对后期的运营有一定的帮助。 2、基本信息规范 微信小
程序
的名称、logo和简介为小
程序
帐号基本信息,需要能够准确描述小
程序
的功能和内容,能提供给用.
系统维护与使用区
19,612
社区成员
74,602
社区内容
发帖
与我相关
我的任务
系统维护与使用区
系统使用、管理、维护问题。可以是Ubuntu, Fedora, Unix等等
复制链接
扫一扫
分享
社区描述
系统使用、管理、维护问题。可以是Ubuntu, Fedora, Unix等等
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章