当前位置:  技术问答>linux和unix

C程序如何同时做2件事?

    来源: 互联网  发布时间:2014-10-24

    本文导语:  UNIX C编程有这样一个问题:某程序运行后,要同时做两件事 待其中一件事完毕,另一件事(放音乐)终止, 好象通过多线程可完成这个问题,但不知如何做? 最好有例子程序! 谢谢 |提供一个例子,...

UNIX C编程有这样一个问题:某程序运行后,要同时做两件事
待其中一件事完毕,另一件事(放音乐)终止,
好象通过多线程可完成这个问题,但不知如何做?
最好有例子程序!
谢谢

|
提供一个例子,供你参考. #include  #include  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") ; }
|
使用线程的例子 // do2things.c // build: cc -o do2things -Wall do2things.c -lpthread  #include  #include  #include  #include  #include    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

    
 
 

您可能感兴趣的文章:

  • 两个程序同时打开文件问题?
  • 如何在一个程序中同时启动多个进程执行不同的命令?
  • shell编程问题:如何同时启动程序?
  • 如何在Linux上实现同时只能启动一个实例的程序?
  • linux字符界面怎么同时运行多个程序?
  • linux自启动同时执行多个程序
  • 怎样在linux命令行同时运行多个相同程序
  • 用户态程序如何和多个内核模块进行同时数据交互??
  • 想写一个shell脚本同时运行一个程序测试最大并发数,求高手改正
  • UNIX下如何简单有效地确保某程序同时只有一个进程实例运行?
  • 自编译的helloworld程序不能同时在两个linux系统中执行????
  • 有没有一个可以模拟同时N个用户访问同一个网站的程序或工具
  • 如何实现本地的两个JAVA程序同时访问一个链表,从而共享数据资源,是否需要使用API
  • 发布程序时出现“类型ASP.global_asax同时存在于...”错误的解决办法
  • 如何用make同时编译多个程序?
  • 想创建可以同时在linux和windows上编译的程序,用什么来标记当前是linux系统?
  • 请问这两个程序应该怎么同时运行?谢谢!!!
  • 请问一个shell程序:adduser 100个用户,并且同时设置密码
  • Red hat linux9.0如何实现远程控制,命令行下如何同时运行3个程序,以装X WIN如何直接启动命令行?
  • 请大家帮我看看这样做来确保UNIX某程序同时只有一个进程运行可以吗?
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 重装服务器后IIS网站错误(应用程序中的服务器错误)
  • 为什么我在java程序里启动的一个程序在java程序关闭后,该程序的所有进程都关掉了
  • windows server2008上PowerBuilder程序系统错误解决方法
  • Linux 编程怎么样在程序开启一个程序,和关闭一个程序?
  • c语言判断某一年是否为闰年的各种实现程序代码
  • 请问从一个java程序中如何调用另一java程序,并控制可以其状态(最小化、最大化、结束程序),还有怎样知道那个被调用的程序结束。
  • 程序员的八种级别,你属于哪一级?
  • Linux下的程序是在内存中运行的吗?为什么在程序运行的时候可以删除程序文件?
  • Linux下指定运行时加载动态库路径及shell下执行程序默认路径
  • 我的程序是用c写的gtk+程序,有个函数的参数要传给它图片的文件名,但是图片和原程序不在同一目录下怎么办?怎么在程序里指定文件的路径
  • 在docker容器中通过apt-get安装新的程序
  • 为什么linux下的C++程序这么少见? 请问那里有linux下的C++程序?什么类型的程序都可以.
  • linux下通过crond实现自动执行程序
  • 我写了个linux下的网络程序,程序在多个电脑间通信,但是我没有多个电脑,怎么调试这样的程序啊?
  • http协议介绍,文件上传分析及程序举例
  • 在java控制台程序中,可以用System.exit(0);使用一个程序终止,那么在servlet中如何使一个servlet程序终止呢?
  • 程序员赚钱致富的6种方法
  • 程序调用脚本,脚本启动另一个程序,如何让原始程序彻底释放资源?
  • HASH查找的程序实现及性能分析
  • python计算程序开始到程序结束的运行时间和程序运行的CPU时间
  • 程序员为了健康必看!早晨空腹喝水,是对还是错?
  • linux下,一个程序如何向另一个程序发送消息,另一个程序如何接收


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3