線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:838
推到 Plurk!
推到 Facebook!

如何使用signal

尚未結案
dickyaaa
一般會員


發表:8
回覆:11
積分:3
註冊:2005-09-30

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-11-14 21:15:25 IP:211.76.xxx.xxx 未訂閱
#include 
#include 
#include 
#include 
#include     void checkArgvs(int argc,char* argv[]);
void exiter(char* str);
void exiter();    int running = 1;    int main(int argc,char* argv[]) {
  cout << "\n";
  checkArgvs(argc,argv);
  int n1 = *argv[1] - 48,
                  n2 = *argv[2] - 48,
                  n3 = *argv[3] - 48,
                  n4 = *argv[4] - 48,
                  n5 = *argv[5] - 48;
  int t1[n1];
  int t2[n3];
  int t3[n5];
  for(int i = 1;i <= n1;i  ) {
    if((t1[i -1] = fork()) == -1) {
      exiter("fork()失敗。\n");
    } else if (t1[i -1] == 0) {
             t1[i -1] = getpid();
             printf("t1[%i] = %i\n",i-1,t1[i-1]);
         if(i == n2) {
          for(int j = 1;j <= n3;j  ) {
                if((t2[j -1] = fork()) == -1) {
                     exiter("fork()失敗。\n");
                    } else if (t2[j -1] == 0) {
                             t2[j -1] = getpid();
                             printf("t2[%i] = %i\n",j-1,t2[j-1]);
                                   if(j == n4) {
                               for(int k = 1;k <= n5;k  ) {
                                   if((t3[k -1] = fork()) == -1) {
                                exiter("fork()失敗。\n");
                                                    } 
                                                   else if (t3[k -1] == 0) {
                                           t3[k -1] = getpid();
                                           printf("t3[%i] = %i\n",k-1,t3[k-1]);
                                           exit(1);
                                                    }
                                                  }
                              }
                              exit(1);
                            }
                          }
      }
      exit(1);
    }
  }
  while(running);
  exiter("forktest執行結束。\n");
  return 0;
}    void checkArgvs(int argc,char* argv[]) {
  cout << "參數檢查開始...\n";
  if(argc != 6) {
    exiter("\tERROR:參數必須為五個大於零的個位數字。\n未通過參數檢查\n");
  }
  for(int i = 1;i <= 5;i  ) {
    if(*argv < 49 || *argv > 57)//49是用asc來看的..48表0而57則是9 {
      exiter("\tERROR:參數必須為大於零的個位數字。\n未通過參數檢查\n");
    }
  }
  if(*argv[2] > *argv[1]) {
    exiter("\tERROR:第二個參數不得大於第一個參數。\n未通過參數檢查\n");
  }
  if(*argv[4] > *argv[3]) {
    exiter("\tERROR:第四個參數不得大於第三個參數。\n未通過參數檢查\n");
  }
  cout << "通過參數檢查。\n";
}    void exiter(char* str) {
  cout << str << "\n";
  exit(1);
}    void exiter() {
  exiter("");
}
請問一下要如何用signal函式讓他的三個輸出能夠分段輸出呢?.. 麻煩大大們..教我要將其放在那.. 謝謝 發表人 - dickyaaa 於 2005/11/14 22:24:37
RedSnow
版主


發表:79
回覆:1322
積分:845
註冊:2003-12-15

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-11-14 22:02:42 IP:61.217.xxx.xxx 未訂閱
dickyaaa 您好:    請注意程式碼的縮排整理並參考下列連結頁面內的說明,然後透過 "修改文章" 的功能重新張貼您的程式碼,以便於瀏覽: 【公告】程式碼張貼規則與方法 http://delphi.ktop.com.tw/topic.php?TOPIC_ID=57538 【公告】重申版規與作業問題說明 http://delphi.ktop.com.tw/topic.php?TOPIC_ID=58991 7 天天敲鍵盤 v 時時按滑鼠 8
系統時間:2024-05-10 8:00:10
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!