728x90

[ proframe ]>webadmin nbtap01_container1
Login name>administrator
Password>
-- Welcome to JEUS Web Container(vJEUS 5.0 (fix #24)) Admin --
$1 nbtap01>ti
-- Thread State [webtob1-hth0(localhost_9901)] --
[webtob1-hth0(localhost:9901)-w00][active , rt=892645 ms, uri=/pfmdevsvr/resource.Update.Tp]
[webtob1-hth0(localhost:9901)-w01][active , rt=1050145 ms, uri=/pfmdevsvr/resource.Update.Tp]
[webtob1-hth0(localhost:9901)-w02][active , rt=969719 ms, uri=/pfmdevsvr/resource.Update.Tp]
[webtob1-hth0(localhost:9901)-w03][active , rt=1023868 ms, uri=/pfmdevsvr/resource.Update.Tp]
[webtob1-hth0(localhost:9901)-w04][active , rt=863794 ms, uri=/pfmdevsvr/resource.Update.Tp]
[webtob1-hth0(localhost:9901)-w05][active , rt=920416 ms, uri=/pfmdevsvr/resource.Update.Tp]
[webtob1-hth0(localhost:9901)-w06][active , rt=873147 ms, uri=/pfmdevsvr/resource.Update.Tp]
[webtob1-hth0(localhost:9901)-w07][active , rt=840138 ms, uri=/pfmdevsvr/resource.Update.Tp]
[webtob1-hth0(localhost:9901)-w08][active , rt=1002865 ms, uri=/pfmdevsvr/resource.Update.Tp]
[webtob1-hth0(localhost:9901)-w09][active , rt=923519 ms, uri=/pfmdevsvr/resource.Update.Tp]
[webtob1-hth0(localhost:9901)-w10][active , rt=927242 ms, uri=/pfmdevsvr/resource.Update.Tp]
[webtob1-hth0(localhost:9901)-w11][active , rt=877027 ms, uri=/pfmdevsvr/resource.Update.Tp]
[webtob1-hth0(localhost:9901)-w12][active , rt=1039899 ms, uri=/pfmdevsvr/resource.Update.Tp]
[webtob1-hth0(localhost:9901)-w13][active , rt=993253 ms, uri=/pfmdevsvr/resource.Update.Tp]
[webtob1-hth0(localhost:9901)-w14][active , rt=1017760 ms, uri=/pfmdevsvr/resource.Update.Tp]
[webtob1-hth0(localhost:9901)-w15][active , rt=865316 ms, uri=/pfmdevsvr/resource.Update.Tp]
[webtob1-hth0(localhost:9901)-w16][active , rt=1059978 ms, uri=/pfmdevsvr/resource.Update.Tp]
[webtob1-hth0(localhost:9901)-w17][active , rt=1026468 ms, uri=/pfmdevsvr/resource.Update.Tp]
[webtob1-hth0(localhost:9901)-w18][active , rt=911728 ms, uri=/pfmdevsvr/resource.Update.Tp]
[webtob1-hth0(localhost:9901)-w19][active , rt=875991 ms, uri=/pfmdevsvr/resource.Update.Tp]
[webtob1-hth0(localhost:9901)-w20][active , rt=951310 ms, uri=/pfmdevsvr/resource.Update.Tp]
[webtob1-hth0(localhost:9901)-w21][active , rt=1010255 ms, uri=/pfmdevsvr/resource.Update.Tp]
[webtob1-hth0(localhost:9901)-w22][active , rt=909447 ms, uri=/pfmdevsvr/resource.Update.Tp]
[webtob1-hth0(localhost:9901)-w23][active , rt=862958 ms, uri=/pfmdevsvr/resource.Update.Tp]
[webtob1-hth0(localhost:9901)-w24][active , rt=985732 ms, uri=/pfmdevsvr/resource.Update.Tp]
[webtob1-hth0(localhost:9901)-w25][active , rt=1044193 ms, uri=/pfmdevsvr/resource.Update.Tp]
[webtob1-hth0(localhost:9901)-w26][active , rt=937471 ms, uri=/pfmdevsvr/resource.Update.Tp]
[webtob1-hth0(localhost:9901)-w27][active , rt=1014867 ms, uri=/pfmdevsvr/resource.Update.Tp]
[webtob1-hth0(localhost:9901)-w28][active , rt=1008853 ms, uri=/pfmdevsvr/resource.Update.Tp]
[webtob1-hth0(localhost:9901)-w29][active , rt=896074 ms, uri=/pfmdevsvr/resource.Update.Tp]
[webtob1-hth0(localhost:9901)-w30][active , rt=972031 ms, uri=/pfmdevsvr/resource.Update.Tp]
[webtob1-hth0(localhost:9901)-w31][active , rt=942891 ms, uri=/pfmdevsvr/resource.Update.Tp]
[webtob1-hth0(localhost:9901)-w32][active , rt=888408 ms, uri=/pfmdevsvr/resource.Update.Tp]
[webtob1-hth0(localhost:9901)-w33][active , rt=914809 ms, uri=/pfmdevsvr/resource.Update.Tp]
[webtob1-hth0(localhost:9901)-w34][active , rt=877948 ms, uri=/pfmdevsvr/resource.Update.Tp]
[webtob1-hth0(localhost:9901)-w35][active , rt=904352 ms, uri=/pfmdevsvr/resource.Update.Tp]
[webtob1-hth0(localhost:9901)-w36][active , rt=966898 ms, uri=/pfmdevsvr/resource.Update.Tp]
[webtob1-hth0(localhost:9901)-w37][active , rt=909067 ms, uri=/pfmdevsvr/resource.Update.Tp]
[webtob1-hth0(localhost:9901)-w38][active , rt=1075016 ms, uri=/pfmdevsvr/resource.Update.Tp]
[webtob1-hth0(localhost:9901)-w39][active , rt=875567 ms, uri=/pfmdevsvr/resource.Update.Tp]
[total : 40    active : 40    idle : 0    blocked : 0    reconnecting : 0]

$1 nbtap01>st
< (MyGroup) session information >
 - number of local sessions             : 3

< memory information >
VM Total Memory    = 1031798784 Bytes
VM Free Memory     = 968859440 Bytes

< thread information(MyGroup/webtob1-hth0(localhost_9901)) >
    - current thread count      : 40
    - max thread count          : 60
    - wait queue count          : -1


< request information(MyGroup/pfmdevsvr) >
   - total requests          : 345
   - total processing time   : 476647 ms
   - average processing time : 1381 ms

< request information(MyGroup/patch) >
   - total requests          : 0
   - total processing time   : 9 ms
   - average processing time : -1 ms

< request information(MyGroup/tpmon) >
   - total requests          : 6
   - total processing time   : 5498 ms
   - average processing time : 916 ms


$1 nbtap01>info
< ContextGroup : MyGroup >
    Context : tpmon
    Context : pfmdevsvr
    0:[PfmServerCmdHttpServlet] <Ready> class: com.tmax.proframe.devsvrcmd.cmd.PfmServerCmdHttpServlet, total_reqs: 0
    1:[PfmTpHttpServlet] <Ready> class: com.tmax.proframe.devsvr.cmd.PfmHttpServlet, total_reqs: 376
    2:[PfmAdminHttpServlet] <Ready> class: com.tmax.proframe.devsvr.cmd.PfmHttpServlet, total_reqs: 0
    3:[PfmTpWebAdminHttpServlet] <Ready> class: com.tmax.proframe.devsvr.cmd.PfmHttpServlet, total_reqs: 0

    Context : patch
    0:[MetaSync] <NotLoaded> class: MetaMgr, total_reqs: 0


특정 테이블 에 대하여  LOCK 이 걸려 있는 경우에 시스템 상황입니다.


정상적인 경우의 모습

$1 nbtap01>ti
-- Thread State [webtob1-hth0(localhost_9901)] --
[webtob1-hth0(localhost:9901)-w00][waiting, wt=1163 ms]
[webtob1-hth0(localhost:9901)-w01][waiting, wt=258 ms]
[webtob1-hth0(localhost:9901)-w02][waiting, wt=1214 ms]
[webtob1-hth0(localhost:9901)-w03][waiting, wt=4742 ms]
[webtob1-hth0(localhost:9901)-w04][waiting, wt=4100 ms]
[webtob1-hth0(localhost:9901)-w05][waiting, wt=346 ms]
[webtob1-hth0(localhost:9901)-w06][waiting, wt=3509 ms]
[webtob1-hth0(localhost:9901)-w07][waiting, wt=3782 ms]
[webtob1-hth0(localhost:9901)-w08][waiting, wt=1999 ms]
[webtob1-hth0(localhost:9901)-w09][waiting, wt=237 ms]
[webtob1-hth0(localhost:9901)-w10][waiting, wt=4062 ms]
[webtob1-hth0(localhost:9901)-w11][waiting, wt=100 ms]
[webtob1-hth0(localhost:9901)-w12][waiting, wt=4537 ms]
[webtob1-hth0(localhost:9901)-w13][waiting, wt=2306 ms]
[webtob1-hth0(localhost:9901)-w14][waiting, wt=4382 ms]
[webtob1-hth0(localhost:9901)-w15][waiting, wt=667 ms]
[webtob1-hth0(localhost:9901)-w16][waiting, wt=3640 ms]
[webtob1-hth0(localhost:9901)-w17][waiting, wt=279 ms]
[webtob1-hth0(localhost:9901)-w18][waiting, wt=2116 ms]
[webtob1-hth0(localhost:9901)-w19][waiting, wt=388 ms]
[webtob1-hth0(localhost:9901)-w20][waiting, wt=3508 ms]
[webtob1-hth0(localhost:9901)-w21][waiting, wt=440 ms]
[webtob1-hth0(localhost:9901)-w22][waiting, wt=4539 ms]
[webtob1-hth0(localhost:9901)-w23][waiting, wt=1435 ms]
[webtob1-hth0(localhost:9901)-w24][waiting, wt=2586 ms]
[webtob1-hth0(localhost:9901)-w25][waiting, wt=4443 ms]
[webtob1-hth0(localhost:9901)-w26][waiting, wt=4486 ms]
[webtob1-hth0(localhost:9901)-w27][waiting, wt=3608 ms]
[webtob1-hth0(localhost:9901)-w28][waiting, wt=3831 ms]
[webtob1-hth0(localhost:9901)-w29][waiting, wt=1412 ms]
[webtob1-hth0(localhost:9901)-w30][waiting, wt=1890 ms]
[webtob1-hth0(localhost:9901)-w31][waiting, wt=4638 ms]
[webtob1-hth0(localhost:9901)-w32][waiting, wt=4151 ms]
[webtob1-hth0(localhost:9901)-w33][waiting, wt=1519 ms]
[webtob1-hth0(localhost:9901)-w34][waiting, wt=2345 ms]
[webtob1-hth0(localhost:9901)-w35][waiting, wt=2738 ms]
[webtob1-hth0(localhost:9901)-w36][waiting, wt=858 ms]
[webtob1-hth0(localhost:9901)-w37][waiting, wt=3200 ms]
[webtob1-hth0(localhost:9901)-w38][waiting, wt=1388 ms]
[webtob1-hth0(localhost:9901)-w39][waiting, wt=3997 ms]
[total : 40    active : 0    idle : 40    blocked : 0    reconnecting : 0]

$1 nbtap01>

출처 : http://pangate.com/55

728x90

한책임..
 
그동안 수고가 많았습니다.  
내가 회사를 떠나면서 마지막으로 부탁하는 것이니 자세히 읽어 봐 주길 바래요..
 
 
DBIO 출력값을 출력변수로 MOVE 하는 소스는 strcpy 를 사용되고 있으나 보통의 경우 문제는 없다.
그러나  date 타입을 string(14) 로 출력시킬 경우에는 문제가 발생됩니다.
개발자가  일일이 to_char(ls_chg_dtm, 'YYYYMMDDHH24MISS')  과 같이 조작하여 출력할 수도 있겠고 dbms 의 date 타입의 출력 포맷을 고칠 수도 있겠으나
농협에서는 절충안 으로 date 타입을 그냥  char(14) 에 담고 그 데이타는 사용하지 않는 것으로 개발해 왔습니다..
 
문제는 출력변수를 move 하는 과정에서 strcpy 를 사용하면서 데이타가 깨져서 나오기 때문에 strncpy 를 사용해 주시길 요청합니다.

     24 static void _out_data_copy(_pdb_sample_edu_acct_ps215_out_t *s, PfmDbiosample_edu_acct_ps215Output *t) {
     25
     26          strcpy( t->cuno, (char*)s->cuno.arr );
     27          strcpy( t->acno, (char*)s->acno.arr );
     28          t->jan_amt = s->jan_amt;
     29          strcpy( t->tr_dt, (char*)s->tr_dt.arr );
     30          strcpy( t->lschg_dtm, (char*)s->lschg_dtm.arr  );
     31          strcpy( t->ls_cmeno, (char*)s->ls_cmeno.arr  );
     32
     33          PFM_DBG(" t->lschg_dtm=[%s], s->lschg_dtm.arr=[%s]", t->lschg_dtm, (char*)s->lschg_dtm.arr );
     34          PFM_DBG(" t->ls_cmeno =[%s], s->ls_cmeno.arr =[%s]", t->ls_cmeno, (char*)s->ls_cmeno.arr );
     35 }
 
  17779  :validation_proc                    :00129] >> PFMTRY [pfmDbioSelect("sample_edu_acct_ps215", &] 입구
  17780  :pfmAnalysisLogging                 :00102] DB EXEC SQL Query Elapse Time : [0 s / 623 ms] - mapid [sample_edu_acct_ps215] : DML [SELECT] - Error No[0] Record Count[1]
  17781 e:_out_data_copy                     :00033]  t->lschg_dtm=[2008-05-17 19:1pfmtcl123], s->lschg_dtm.arr=[2008-05-17 19:1]
  17782 e:_out_data_copy                     :00034]  t->ls_cmeno =[pfmtcl123], s->ls_cmeno.arr =[pfmtcl123]
  17783  :validation_proc                    :00129] << PFMTRY [pfmDbioSelect("sample_edu_acct_ps215", &] 출구 RC [0] TIME [00.005934]
  17784  :validation_proc                    :00135] ================================
  17785  :validation_proc                    :00135] sample_edu_acct_ps215Out
  17786  :validation_proc                    :00135] --------------------------------
  17787  :validation_proc                    :00135] cuno : cuno = [8000000011]
  17788  :validation_proc                    :00135] 계좌번호 : acno = [AC80000000]
  17789  :validation_proc                    :00135] 잔액 : jan_amt = [10]
  17790  :validation_proc                    :00135] 거래일자 : tr_dt = []
  17791  :validation_proc                    :00135] 최종변경자개인번호 : ls_cmeno = [2008-05-17 19:1pfmtcl123]
  17792  :validation_proc                    :00135] 최종변경일시 : lschg_dtm = [ 19:1pfmtcl123]
  17793  :validation_proc                    :00135] ================================
 
     24 static void _out_data_copy(_pdb_sample_edu_acct_ps215_out_t *s, PfmDbiosample_edu_acct_ps215Output *t) {
     25
     26          strncpy( t->cuno, (char*)s->cuno.arr, LEN_SAMPLE_EDU_ACCT_PS215_CUNO_O );
     27          strncpy( t->acno, (char*)s->acno.arr, LEN_SAMPLE_EDU_ACCT_PS215_ACNO_O );
     28          t->jan_amt = s->jan_amt;
     29          strcpy( t->tr_dt, (char*)s->tr_dt.arr, LEN_SAMPLE_EDU_ACCT_PS215_TR_DT_O );
     30          strncpy( t->lschg_dtm, (char*)s->lschg_dtm.arr, LEN_SAMPLE_EDU_ACCT_PS215_LSCHG_DTM_O );
     31          strncpy( t->ls_cmeno, (char*)s->ls_cmeno.arr, LEN_SAMPLE_EDU_ACCT_PS215_LS_CMENO_O );
     32
     33          PFM_DBG(" t->lschg_dtm=[%s], s->lschg_dtm.arr=[%s]", t->lschg_dtm, (char*)s->lschg_dtm.arr );
     34          PFM_DBG(" t->ls_cmeno =[%s], s->ls_cmeno.arr =[%s]", t->ls_cmeno, (char*)s->ls_cmeno.arr );
     35 }
    
    
  21211  :validation_proc                    :00129] >> PFMTRY [pfmDbioSelect("sample_edu_acct_ps215", &] 입구
  21212  :pfmAnalysisLogging                 :00102] DB EXEC SQL Query Elapse Time : [0 s / 661 ms] - mapid [sample_edu_acct_ps215] : DML [SELECT] - Error No[0] Record Count[1]
  21213 e:_out_data_copy                     :00033]  t->lschg_dtm=[2008-05-17 19:], s->lschg_dtm.arr=[2008-05-17 19:1]
  21214 e:_out_data_copy                     :00034]  t->ls_cmeno =[pfmtcl123], s->ls_cmeno.arr =[pfmtcl123]
  21215  :validation_proc                    :00129] << PFMTRY [pfmDbioSelect("sample_edu_acct_ps215", &] 출구 RC [0] TIME [00.003237]
  21216  :validation_proc                    :00135] ================================
  21217  :validation_proc                    :00135] sample_edu_acct_ps215Out
  21218  :validation_proc                    :00135] --------------------------------
  21219  :validation_proc                    :00135] cuno : cuno = [8000000011]
  21220  :validation_proc                    :00135] 계좌번호 : acno = [AC80000000]
  21221  :validation_proc                    :00135] 잔액 : jan_amt = [10]
  21222  :validation_proc                    :00135] 거래일자 : tr_dt = []
  21223  :validation_proc                    :00135] 최종변경일시 : lschg_dtm = [2008-05-17 19:]
  21224  :validation_proc                    :00135] 최종변경자개인번호 : ls_cmeno = [pfmtcl123]
  21225  :validation_proc                    :00135] ================================
 
 
이 때 사용되는 SQL 은 다음과 같으며 여기서  LSCHG_DTM 은 DATE 타입입니다.

     77         EXEC SQL SELECT  /*+ map_id(sample_edu_acct_ps215) */ CUNO
     78                         , ACNO
     79                         , JAN_AMT
     80                         , TR_DT
     81                         , LSCHG_DTM
     82                         , LS_CMENO
     83         INTO :pdb_out
     84         FROM SAMPLE_EDU_ACCT
     85         WHERE cuno = :pdb_in.cuno
     86         ;
 
 
 
     14 struct _pdb_sample_edu_acct_ps215_out_s {
     15     varchar cuno[LEN_SAMPLE_EDU_ACCT_PS215_CUNO_O+1];
     16     varchar acno[LEN_SAMPLE_EDU_ACCT_PS215_ACNO_O+1];
     17     long jan_amt;
     18     varchar tr_dt[LEN_SAMPLE_EDU_ACCT_PS215_TR_DT_O+1];
     19     varchar lschg_dtm[LEN_SAMPLE_EDU_ACCT_PS215_LSCHG_DTM_O+1];
     20     varchar ls_cmeno[LEN_SAMPLE_EDU_ACCT_PS215_LS_CMENO_O+1];
     21 };

출처 : http://pangate.com/51

728x90

여신 김만기 차장님의 요청에 의하여 오전에 오전임과 같이 만들었으니 향후 검토하신 후에 compile shell 뒤에 append 하여 모든 프로그램 컴파일 할 때 warning 을 보여 준다면 어떨까 검토해 주신 후 적용해 주세요.

프로그램명 : inspect_code
적용룰 : PFM_TRYNJ 절 뒤에 SET_ERR 을 안 한 경우를 찾아 줌
사용예 : 소스가 존재하는 디렉토리로 이동해서 inspect_code 를 실행합니다.

nbtap01#/nbsdev/compile/NLDS/src/service>inspect_code NLDS1001I0
"NLDS1001I0.c", line 475: warning #9999: not found SET_ERR after PFM_TRYNJ
"NLDS1001I0.c", line 1541: warning #9999: not found SET_ERR after PFM_TRYNJ
"NLDS1001I0.c", line 1727: warning #9999: not found SET_ERR after PFM_TRYNJ
nbtap01#/nbsdev/compile/NLDS/src/service>
 
더 필요한 체크 룰이 있다면( code inspection 툴이 체크해 내지 못하는 ) 오전임에게 요청해서 반영하면 되겠죠.
(문의) 프레임웍팀 오은경


/*
 * @file            inspect_code.c
 * @brief           코드 점검
 *
 * @dep-header
 *
 * @history
 *    버    전 : 성  명  :  일  자    :  근거  자료    :          변       경        내       용
 *    --------   ------     --------     -----------     -------------------------------------------
 *    VER1.00  : 오은경  :  20080522  :  proframe 구축 :  신규 개발
 *
 */

/* --------------------------------------- include files ---------------------------------------- */
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
/*--------------------------------- constant, macro definitions --------------------------------- */
#define RC_NRM     0
#define RC_ERR    -1
#define STRSIZE 1024
#define TRUE       1
#define FALSE      0

#define START_TAG  "//DO_NOT_MODIFY_THIS_LINE-----------START_OF_CODE"
#define END_TAG    "//DO_NOT_MODIFY_THIS_LINE-----------END_OF_CODE"


#define PFM_TRY( _Ftn )                                                             \
        do {                                                                        \
            rc = _Ftn;                                                              \
            if( rc != RC_NRM) goto PFM_CATCH;                                       \
        } while (0)

#define PFM_TRYNJ( _Ftn )                                                           \
        do {                                                                        \
            rc = _Ftn;                                                              \
        } while (0)

/* ------------------------------------ function prototypes ------------------------------------- */
/* static long open_file( FILE *fp, char *file_name ); */
static long read_file( FILE *fp, char * );

/* ------------------------------------ function main ------------------------------------------- */
int main(int argc, char *argv[] )
{
    FILE *fp = NULL;
    FILE *ofp;
    long rc = RC_NRM;
    char file_name[100];
    char base_name[100];

    if ( argc != 2 ) {
        printf("\nargument needed!\n\n");
        return RC_ERR;
    }

    strcpy( base_name, argv[1] );
    sprintf(file_name, "%s.c", base_name );
    fp = fopen(file_name, "r");

    if(fp == NULL) {
        /* printf("FILE OPEN FAILED\n");   */
        return RC_ERR;
    }
    /* printf("FILE OPEN SUCCEED\n");   */


    PFM_TRY(read_file( fp, file_name ));


    fclose(fp);


PFM_CATCH :
    return RC_ERR;
}

/* ---------------------------------------- function body ----------------------------------------*/
static long read_file( FILE *fp, char *file_name ) {

    char line[1028];
    char excpt[10280];
    long line_no = 0;
    long excpt_flag = FALSE;
    long start_flag = FALSE;
    long end_flag = FALSE;
    long seterr_flag = FALSE;
    long trynj_no = 0;

    memset(line, 0x00, sizeof(line));
    while( fgets(line, STRSIZE, fp ) != NULL )  {
        line_no++;

        if ( strstr( line, "PFM_TRYNJ" ) > 0 ) {
            /* printf("PFM_TRYNJ founded line_no=[%ld] \n", line_no); */
            excpt_flag  = TRUE;
            trynj_no    = line_no;
            start_flag  = FALSE;
            end_flag    = FALSE;
            seterr_flag = FALSE;
            continue;
        }

        if( excpt_flag == TRUE ) {
            if ( strstr( line, START_TAG ) > 0 ) {
                start_flag  = TRUE;
                continue;
            }
            else if ( strstr( line, END_TAG ) > 0 ) {
                end_flag = TRUE;
            }
            else if ( strstr( line, "SET_ERR" ) > 0 ) {
                seterr_flag = TRUE;
            }

            if ( start_flag == TRUE ) {
                if( seterr_flag == TRUE ) {
                    excpt_flag  = FALSE;
                    continue;
                }
            }
            if ( end_flag == TRUE && start_flag == TRUE ) {
                if( seterr_flag == FALSE ) {
                    printf("\"%s\", line %ld: warning #9999: not found SET_ERR after PFM_TRYNJ\n",file_name, tr
                    start_flag  = FALSE;
                    end_flag    = FALSE;
                    seterr_flag = FALSE;
                    excpt_flag  = FALSE;
                }
            }

        }

        memset(line, 0x00, sizeof(line));

    }

    return RC_NRM;
}

/* --------------------------------------- E N D  O F  F I L E -----------------------------------*/



이 프로그램을 해당 팀에 일괄 돌리겠다면 다음의 shell 을 이용하면 되겠죠..

#!/bin/ksh
#----------------------------------------------------------#
# 작성자 : 오은경  작성일:2008.5.20
#----------------------------------------------------------#

#----------------------------------------------------------#
# 입력 된 아규먼트 개수를 체크한다
#----------------------------------------------------------#
if [ $# -ne  1 ]
then
    echo "\nUsage : $0 team_code(대문자)"
    echo " \n"
    exit
fi


team_code=$1
cd $PRJROOT/compile/$team_code/src/service

pgm_lst=`ls *.c`
for pgm_one in ${pgm_lst};  do
#    echo $pgm_one
    BASE=`echo $pgm_one|cut -d"." -f1-1`
    inspect_code $BASE
done

cd $PRJROOT/compile/$team_code/src/module

pgm_lst=`ls *.c`
for pgm_one in ${pgm_lst};  do
#    echo $pgm_one
    BASE=`echo $pgm_one|cut -d"." -f1-1`
    inspect_code $BASE
done

cd -

출처 : http://pangate.com/50

+ Recent posts