⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 timers.cpp

📁 ACE自适配通信环境(ADAPTIVE Communication Environment)是可以自由使用、开放源码的面向对象(OO)框架(Framework)
💻 CPP
字号:
// Timers.cpp,v 1.6 2005/05/27 20:35:37 michel_j Exp#include "ace/config-all.h"#include "ace/OS_main.h"#if !defined (ACE_LACKS_FORK)#include "ace/streams.h"#include <signal.h>#include <sys/types.h>#include <unistd.h>#include <time.h>typedef void (*timerTask_t)(void);// Listing 1 code/ch07pid_t timerTask (int initialDelay,                 int interval,                 timerTask_t task){  if (initialDelay < 1 && interval < 1)    return -1;  pid_t pid = fork ();  if (pid < 0)    return -1;  if (pid > 0)    return pid;  if (initialDelay > 0)    sleep (initialDelay);  if (interval < 1)    return 0;  while (1)    {      (*task) ();      sleep (interval);    }  ACE_NOTREACHED (return 0);}// Listing 1// Listing 2 code/ch07void foo (){  time_t now = time (0);  cerr << "The time is " << ctime (&now) << endl;}// Listing 2void programMainLoop (void){  sleep (30);}// Listing 3 code/ch07int ACE_TMAIN (int, ACE_TCHAR *[]){  pid_t timerId = timerTask (3, 5, foo);  programMainLoop ();  kill (timerId, SIGINT);  return 0;}// Listing 3#else#include <stdio.h>int ACE_TMAIN (int, ACE_TCHAR *[]){  puts ("This very unportable example requires fork().\n");  return 0;}#endif /* ACE_LACKS_FORK */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -