コード例 #1
0
ファイル: main.c プロジェクト: lukequeenan/COMP8005A1
/* Implementation */
int main (int argc, char **argv)
{
    int option = 0;
    long numberOfWorkers = DEFAULT_WORKERS;
    
    while ((option = getopt(argc, argv, "p:t:")) != -1)
    {
        switch (option)
        {
            case 'p':
                numberOfWorkers = atol(optarg);
                /*printf("Spawning %lu processes\n", numberOfWorkers);*/
                startProcesses(numberOfWorkers);
                break;
            case 't':
                numberOfWorkers = atol(optarg);
                /*printf("Spawning %lu threads\n", numberOfWorkers);*/
                startThreads(numberOfWorkers);
                break;
            case '?':
            default:
                usage(argv[0]);
        }
    }
    
    return 0;
}
コード例 #2
0
ファイル: dirscaner.cpp プロジェクト: ZeRuS04/fileDaemon
int DirScaner::run() {
    int retVal;
    bool reRun = false;
    do {
        retVal = startProcesses();

        syslog(LOG_INFO, "[run] retval %d\n", retVal);
        if (retVal >= 0) // если мы потомок
        {
            bool isInit = true;
            int status = 0;
            while(true) {
                status = scanDir(m_buffer[retVal].dirName.c_str(), isInit);
                if(status)
                    break;
                if(isInit) {
                    syslog(LOG_INFO, "[run] initial map successfull\n");
                    isInit = false;
                }

                if(g_destroySelf) {
                    exit(0);
                }
                sleep(m_buffer[retVal-1].mTime);
            }
            return status;
        } else if(retVal == -1){
            // бесконечный цикл работы
            while(true)
            {
                pause();
                if(g_destroySelf) {
                    destroyAllChildren();
                    exit(0);
                }
                if(g_reloadCfg){
                    destroyAllChildren();
                    loadConfig();
                    g_reloadCfg = false;
                    reRun = true;
                    break;
                }
            }
        }
    } while(reRun);

    return retVal;
}
コード例 #3
0
int main(int argc,char **argv) {
  char* serverIPAddress;
  int serverPort;
  int myPort;
  //  char myName[8];
  struct sockaddr_in myAddr;
  int addr_size = sizeof serverAddr;

  freopen(NULL, "rb", stdin);
  
  memset(&serverAddr, 0, addr_size);

  if (argc >= 4) {
    // the server address
    serverIPAddress = argv[1];

    // the server port
    serverPort = atoi(argv[2]);

    // the local port
    myPort = atoi(argv[3]);
    
    // the client name
    /*
    if (argc >= 5) {
      int l = strlen(argv[4]);
      memcpy(myName, argv[4], l);
      memset(myName+l, ' ', 8-l);
    } else {
      sprintf(myName, "DEFAULT ");
    }
    */
  } else {
    bail("Usage: mavlinkUDP <serveraddress> <serverport> <myport>");
  }

  serverAddr.sin_family = AF_INET;
  serverAddr.sin_port = htons(serverPort);
  serverAddr.sin_addr.s_addr = inet_addr(serverIPAddress);
  if (serverAddr.sin_addr.s_addr == INADDR_NONE )
    bail("bad server address.");
  
  /*
   * Create a UDP socket for server comms:
   */
  sock = socket(AF_INET,SOCK_DGRAM,0);
  if (sock == -1)
    bail("socket()");
  
  // Set socket "file" to nonblocking I/O.
  // int flags = fcntl(s, F_GETFL);
  // flags |= O_NONBLOCK;
  // fcntl(s, F_SETFL, flags);
  
  /*
   * Bind client to the given source port (important for knocking holes through NATs
   * Actually client binding is not necessary onboard the UAV. We still want to
do it though, so we can make new "connections" just the see if the server gets them.
  */
  myAddr.sin_family = AF_INET;
  myAddr.sin_port = htons(myPort);
  myAddr.sin_addr.s_addr = INADDR_ANY;

  if (bind(sock, (struct sockaddr*)&myAddr, addr_size) < 0) {
    bail("bind");
    abort();
  }
  
  startProcesses();
  while(1);
  //  system ("/bin/stty cooked");
  return 0;
}