//메시지 띄우기
function basic_caution($msg){
	$str = "<script>";
	$str .= "alert('{$msg}');"; 
	$str .= "</script>"; 
	echo("$str"); 
	exit; 
} 

//메시지 띄우고 이전 페이지로 이동 
function back_caution($msg){ 
	$str = "<script>"; 
	$str .= "alert('{$msg}');"; 
	$str .= "history.back();";
	$str .= "</script>";
	echo("$str"); 
	exit; 
} 

// 메시지 띄우고 URL 이동 
function goto_caution($msg, $url){ 
	$str = "<script>"; 
	$str .= "alert('{$msg}');"; 
	$str .= "location.href = '{$url}';"; 
	$str .= "</script>"; 
	echo("$str"); 
	exit; 
} 

// 메시지 띄우고 창 종료
function close_caution($msg){
	$str = "<script>"; 
	$str .= "alert('{$msg}');";
	$str .= "window.close();";
	$str .= "</script>";
	echo("$str");
	exit;
} 

// URL로 이동 
function just_go($url){ 
	$str = "<script>"; 
	$str .= "location.href = '{$url}';"; 
	$str .= "</script>"; 
	echo("$str"); 
	exit; 
} 
Posted by 파이군
,

 

mysql.h 없을 시 다운

apt-get install libmysqlclient-dev

 

Posted by 파이군
,

jungol 119 - 디버깅

C/C++기초 2019. 9. 11. 12:22

다음의 프로그램을 작성하고 디버깅을 하며 ①, ②, ③ 위치의 값을 watches에서 a의 값을 출력하시오.

즉, ​①에서 a의 값,  ②에서 a의 값, ③에서 a의 값을 1,2,3과 바꾸어 출력하면 됩니다.

#include <stdio.h>
#include <time.h>

int main()
{
    int a = 0;
    time_t now;
    struct tm tt;
    time(&now);
    tt = *localtime(&now);
    a = tt.tm_year;   // 1
    a += tt.tm_mon;   // 2
    a += tt.tm_mday;

    printf("%d %d %d\n", 1, 2, 3);  //3

    return 0;
}

 

해결 방번은 아래와 같습니다.

 

소스코드를 작성하고 빌드를 합니다. (에러가 없어야 디버깅이 됩니다.)

 

1. 아래 그림에서 붉은색 원의 step info 를 클릭합니다. 그럼 디버깅이 시작됩니다.

2. 디버깅이 시작되면 아래 그림처럼 노란색 삼각형(1)과 Watches(2)가 나타납니다.

만약 Watches가 없다면 아래 2-1 또는 2-2를 참고 하세요.

2-1. Watches 가 보이지 않는 경우 1 : 메뉴 > Debug > Debugging windows > Watches 클릭

2-2. Watches 가 보이지 않는 경우 2 : 디버깅 도구 모음에서 1, 2 클릭

3. 11행(3) 까지 run to cursor(1) 또는 next line(2)를 이용하여 이동합니다. 이동훈 watches에서 a의 값을 1(5) 자리에 입력 합니다.

4. 마찬가지로 next line(1)을 이용하여 12행(2) 으로 이동하여 watches 에서 a의 값(3)를 2(4) 자리에 입력 합니다.

 

5. 15행(3) 까지 next line(2)를 이용하여 이동하여 watches 에서 a의 값(3)를 3(5) 자리에 입력 합니다.

6. 붉은원의 'x' 아이콘을 클릭하여 디버깅을 종료 합니다.

7. 완성된 소스 코드를 제출 합니다.

Posted by 파이군
,
netstat -nap | grep ESTABLISHED | wc -l ( 모든 서비스 동시 접속자 수)
netstat -nap | grep :80 | grep ESTABLISHED | wc -l ( 웹 동시 접속자 수)
netstat -l 또는 netstat -nap | grep LISTEN (LISTEN 되는 모든 포트)
netstat -n|grep -F :80|egrep '(ESTAB|SYN)'|awk '{print $5}'|sed 's/:[0-9]*//'|sort -u|wc -


Posted by 파이군
,

Ubunute 


root계정 비번 바꾸기 

$ sudo passwd root 
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully



Hostname 변경

#vi /etc/hostname


빈 파일 또는 기존의 hostname 이 있다. 원하는 이름으로 바꾸면 된다.


적용하기


#hostname -F /etc/hostname


서버에 재접속하면 적용


Posted by 파이군
,

/* Original Source Author : Joe Wright (12/06/2006) */

#include <stdio.h>
#include <ctype.h> // isspace()
#include <string.h> // strcpy_s() strlen()

#define MAX_STR_LEN 4000

char*  trim(char *s); // 문자열 좌우 공백 모두 삭제 함수
char* ltrim(char *s); // 문자열 좌측 공백 제거 함수
char* rtrim(char* s); // 문자열 우측 공백 제거 함수


int main(void) {
  char* s = "  AAAA  ";

  printf("[%s]\n",  trim(s)); // 출력결과: [AAAA]
  printf("[%s]\n", ltrim(s)); // 출력결과: [AAAA  ]
  printf("[%s]\n", rtrim(s)); // 출력결과: [  AAAA]

  return 0;
}




// 문자열 우측 공백문자 삭제 함수
char* rtrim(char* s) {
  char t[MAX_STR_LEN];
  char *end;

  // Visual C 2003 이하에서는
  // strcpy(t, s);
  // 이렇게 해야 함
  strcpy_s(t, s); // 이것은 Visual C 2005용
  end = t + strlen(t) - 1;
  while (end != t && isspace(*end))
    end--;
  *(end + 1) = '\0';
  s = t;

  return s;
}


// 문자열 좌측 공백문자 삭제 함수
char* ltrim(char *s) {
  char* begin;
  begin = s;

  while (*begin != '\0') {
    if (isspace(*begin))
      begin++;
    else {
      s = begin;
      break;
    }
  }

  return s;
}


// 문자열 앞뒤 공백 모두 삭제 함수
char* trim(char *s) {
  return rtrim(ltrim(s));
}


Posted by 파이군
,

리눅스 서버

잡학상식 2015. 10. 18. 13:52

# ubuntu

reboot // 시스템재시작


# 아파치 재시작 

/etc/init.d/apache2 restart 


# mysql 재시작 

/etc/init.d/mysql restart 


# ftp 재시작 

/etc/init.d/vsftpd restart 


# openssh 재시작 

/etc/init.d/openssh restart

Posted by 파이군
,

다시 돌아온 내 친구 호비 극장판

호비와 쿠우의 어드벤처-고래의 노래

 

 

 

Posted by 파이군
,

 

올해 정보올림피아드 대회가 작년보다 1달 2주 정도 빠르네요..

일정과 세부 계획을 확인하고 알맞게 준비하세요..

 

□ 대회 일정

 o 지역 예선 : 4. 12(토), 14:00 ~ 16:00

 o 지역 본선 : 5. 24(토), 14:00 ~ 18:00

 o 전국 대회
    - 예비소집 및 개회식 : 7. 10.(목) 15:00, 순천대 70주년 기념관
    - 개최 일시 및 장소 : 7. 11(금), 09:00~18:00, 순천대 실내체육관(전남 순천)


□ 세부 계획

 

가. 지역 예선

 

 o 참가신청서 접수
   - 재학생은 시․도 교육청 접수(휴학생 제외)
     ※ 지도교사를 명시하되, 지도교사는 학생의 소속학교와 달라도 무관

   - 대안학교 재학생, 검정고시 출신자 등은 한국정보화진흥원(이하 NIA) 접수
    ·취학연령을 기준으로 하며 해당부문의 재학생과 동등한 자격요건을 구비한 자에 한함
        ※ 초등부(만 7∼12세), 중등부(만 13∼15세), 고등부(만 16 ∼ 18세)
    ·NIA에 신청한 사람은 거주 지역 교육청(원)에서 개최하는 지역 예·본선 대회에 참가해야 함(KOI 홈페이지를 통해 공지)   

 

 o 출전제한
   - 국제정보올림피아드 참가자 중 상급학교에 진학(또는 상급부문 검정고시에 합격)하지 아니한 청소년
   - 당해 연도 국제정보올림피아드 참가자로 결정된 청소년
     ※ 전국대회 경시부문 대상, 금상 旣수상자 중 상급학교에 진학하지 아니한 학생은 참관자 자격으로 참가 가능(NIA로 참가신청을 하고 시상 대상에서는 제외)

 

 o 개최 일시 : 4. 12(토), 14:00 ~ 16:00
     ※ 지역예선(필기) 시행여부는 시도교육청에서 선택 가능 (전국 동시 시험 실시)

 

 o 경시 방식 : 필기(2시간)

 

 o 문제 출제
   - 문제유형 : 객관식 50문항, 5지 선다형
   - 문제구성 : 수리퀴즈, 관련수학, 자료구조, 알고리즘 프로그램 
   - 난이도 : 초급 30%, 중급 50%, 고급 20% 비율로 출제
   - 사용언어 : Linux(Ubuntu 12.04 LTS i386)내장 C언어

 

 o 세부 진행 절차
   - 각 시․도 교육청은 지역대회 계획(예선 개최여부 및 문제지 수요)을 4월 4일까지 NIA로 발송
     ※ 시도교육청에서 자체적으로 지역예선 문제를 출제, 시험을 실시할 수도 있음
   - NIA는 대회 2일전 문제지 및 답안지를 시․도 교육청(원)에 전달
     ※ 교육청 담당자 책임 하에 문제 보관
   - 시․도 교육청(원)은 대회 1일전 문제지를 지역별 시험장에 배포
   - 감독관이 취합하여 해당 지역 교육청(원)에서 자체 채점
   - 이의신청 접수(4. 12 ~ 4. 14) : KOI 홈페이지에 이의신청
   - 이의신청 분석 및 통보(4. 15 ~ 4. 16) : 홈페이지 이의신청에 답글 게재
   - 결과 발표(4. 18) : 교육청 홈페이지
   - 지역예선 결과 통보(4. 28) : 응시자 명단, 점수표를 NIA로 공문송부


나. 지역 본선

 o 개최 일시 : 5. 24(토), 14:00 ~ 18:00
   ※ 참가자는 시험 1시간 전인 13:00까지 시험장에 입실하여 PC, SW 점검

 

 o 경시 방식 : 실기(4시간)

 

 o 문제 출제
   - 문제구성 : 수학적 지식 및 논리적 사고능력을 필요로 하는 알고리즘과 그 구현을 경시하는 문제(4∼5문제)
   - 사용언어 : Linux(Ubuntu 12.04 LTS i386)내장 C언어
   - 사용기기 : IBM PC 호환기종

 

 o 세부 진행 절차
   - 대회 2일전 문제 출제 완료
   - 대회 1일전 오전에 각 시․도 교육청(원) 담당자에게 메일로 암호화된 문제를 발송
      ※ 주의사항은 PDF 파일과 글 파일로 제공(암호없음)
      ※ 시도교육청에서 자체적으로 문제를 출제, 시험을 실시할 수도 있음
   - 시험감독관은 시험개시 1일전 경시자 컴퓨터에 문제를 탑재
   - 대회 시작 1시간 전에 문자메시지로 암호를 수신하면, 경시시작과 함께 응시자에게 패스워드 공개
   - 문제채점(5. 25 ~5. 26) : 각 시·도 교육청(원) 담당자가 답안 파일을 NIA 채점실에 제출하면, 채점 결과 당일 통보
        ※ Linux(Ubuntu 12.04 LTS i386) 내장 C언어 이외의 버전은 채점불가
   - 이의신청 접수(5. 24 ~ 5. 26) : KOI 홈페이지
   - 이의신청 분석 및 결과통보(5. 27 ~5. 28) : 홈페이지에 답글 게재
   - 결과 발표(5. 30(금)) : 교육청 홈페이지
   - 시상 : 시․도 교육청 자체 시상


다. 전국 본선대회

 

 o 개최 일시 및 장소 : 7. 11(금), 09:00~18:00, 순천대 실내체육관(전남 순천)
   - 예비소집 및 개회식 : 7. 10.(목) 15:00, 순천대 70주년 기념관 

 

 o 참가신청서 접수 : 6. 9(월) ∼ 6. 13(금)

 

 o 참가인원 : 초, 중, 고등부 각 124명 총 372명


   - 17개 시․도에 부문별 각 2명씩의 기본 참가인원을 배정하고(34명), 나머지 88명은 시ㆍ도별 학생 수 비율에 따라 배정 (’13년 교육부 통계 기준)
   - 전국대회 개최 지역에 초·중·고등부 각 2명씩 총6명 추가 배정
   - 0점자 발생으로 부문별 인원 미달시에는 총인원 내에서 부문별 참가인원 조정 가능
   

 

 o 경시방식 : 실기(4시간)

 

 o 문제 출제 : 지역본선과 동일
   - 각 분야별 수준에 맞는 문제해결 및 프로그램 작성능력 평가

 

 o 평가방법
     - 응시자는 작성된 프로그램(답안)을 본인 PC에서 네트워크로 제출
     - 네트워크로 취합된 프로그램(답안)은 자동 채점프로그램으로 평가
     - 응시자는 채점된 평가결과를 본인 PC에서 실시간으로 확인 가능
       ※ 시험 종료 1시간 전 채점결과는 비공개로 전환

 

 o 동점 처리 기준
     - 소스 프로그램 제출 횟수가 적은 사람이 앞선 순위
     - 제출횟수가 동수인 경우 마지막 유효점수를 받은 시간이 빠른 사람이 앞선 순위

 

 o 시상규모 : 국무총리상(고등부 대상 1점), 장관상(12점), NIA원장상(78점), 정보과학회장상(281점) 등 총 372점 이내(※전체 응시자 중 0점자는 제외)

 

 ※ 지도교사상 : 장관상(3명, 대상수상자 지도), NIA원장상(3명, 금상수상자 지도)

 

 o 결과평가, 이의신청 접수, 이의신청 결과 통보 : 대회 당일

 

 o 최종결과 발표 : 7. 18(금), KOI 홈페이지 공지 및 입상자 공문 발송

 

 o 시상 : 금상 이상 입상자는 별도의 시상식 개최
         ※ 은상 이하는 시․도 교육청 자체 시상(상장 및 메달 전수)

 

 

라. 기타 사항

 

 o 전국대회 이전에 상급부문 검정고시에 합격할 경우, 해당 부문으로 재분류하여 응시할 수 있도록 사전 고지 의무

 

 o 전국대회 참가자(372명) 대상 알고리즘 온라인 코칭프로그램 운영(6월경)

 

 o 전국대회 은상이상 수상자(중2 ~ 고2)는 차기년도 아시아․태평양정보올림피아드대회 참가자격 부여(5월, 온라인)

 

 o ’14년부터 전국대회 우수 입상자(중2 ~ 고2) 중 순위에 따라 일부 학생은 IOI 교육생으로 선발

 

- 13년 대비 달라진 점 -

 

◇ 한국정보올림피아드(KOI) 운영 방식

 - 지역예선 50문항

 - 전국대회 유치지역에 대해 초/중/고 각 2명씩 추가 참가인원 배정(총372명)

 - 경시부문 출전제한 대상이었던 전년도 대상, 금상 기 수상자(상급학교 미 진학시)는 참관 응시

    가 가능하며 시상에서는 제외

 - 공모부문 기 수상자의 출전제한 규정 폐지

 - 한국정보올림피아드(경시) 우수입상자 중 일부를 국제정보올림피아드 후보군으로 선발

 

◇ 사전․사후 교육(신규)

 - 컴퓨터 알고리즘 온라인 학습 지원(학습자료 게시, KOI 전국대회 진출자 맞춤형 교육)

 - 컴퓨터 알고리즘 전문 교육콘텐츠 개발

 - 한국정보올림피아드 우수입상자 사후 교육

 - 시도교육청 주관 창의적 SW 개발 소모임 교육 지원

 - 국제과학경진대회 참가자 교육 지원

Posted by 파이군
,


라디오 버튼을 클릭하면 표시가 되고 문자열을 클릭해도 같은 효과가 있다.

<input type="radio" id="id지정" name="이름지정" value="값"><label for="id">문자열</label>


체크박스도 같은 방법으로 사용할 수 있다.

<input type="checkbox" id="id지정" name="이름지정" value="값"><label for="id">문자열</label>


Posted by 파이군
,