'gcc'에 해당되는 글 2건

  1. 2011.09.25 fgets 에서 프로그램이 진행 안됄때.
  2. 2011.09.22 리눅스에 gcc를 설치해 보자.

fgets 에서 프로그램이 진행 안됄때.

Dev 2011. 9. 25. 20:03


어처구니 없는 실수...
Linux에 간단한 게임 서버를 공부삼아 꾸며 봐야겠다는 생각에 일단 테스트로 에코 서버/클라이언트를 작성해 보았는데 이상하게 프로그램이 프리징 된듯하게 진행이 안돼는 것이였다.
분명 대학교때 사용하던 책이었고 작성해 봤었던 간단한 프로그램이였는데 왜 안돼는지 정말 답답 했었다.
리눅스여서 뭔가 다른가? 하고 눈을 씻고 여기저기 구석구석 찾아 보았다.

원인은....

문자열을 입력 받기 위한 fgets 함수에 있었다.

fgets(message, BUFSIZE, stdin);

이것을

fgets(message, strlen(message), stdin);

이렇게 잠결에 아랫줄과 혼돈하여 넣은것이다.
잠결에 코드 작성하지 말자.

그런데, 프로그램이 아예 뻑나거나... 그러질 않고 가만히 멈추어 있는 뭐지? ㅋㅋ
리눅스(gcc 라고 해야하나?)상에서 디버깅 기술이 전혀 없어서 그런듯 하다.
시간 날때 꼭 디버깅에 대해 정리해보고 공부해야겠다.

해당 함수의 레퍼런스 링크 : http://www.cplusplus.com/reference/clibrary/cstdio/fgets/
:

리눅스에 gcc를 설치해 보자.

OS/Linux 2011. 9. 22. 21:25


리눅스 설치시 별다른 옵션없이 설치 했더니 gcc가 없나보다.
간만에 책에서 본것좀 리눅스에서 컴파일 좀 돌려볼려고 명령 프롬프트에
# gcc -v
를 입력 하니 없단다.
그리서 yum을 이용하여 설치 하였다.

# yum install gcc

미러 사이트를 통해 자동으로 받아 설치 하겠느냐고 묻는다. y키 한번 입력해 주면 설치가 완료된다.

테스트 방법 )
vi편집기를 이용하여 항상 입력하던 hello를 출력하는 프로그램 코드를 입력후 빌드해 본다.

#vi hello.c

----------------프로그램 코드 -------------

#include <stdio.h>

int main(void)
{
    printf("hello\n");
    return 0;
}
-------------------------------------------
:wq

gcc를 이용하여 컴파일 한다.

# gcc hello.c -o hello

hello라는 출력 파일이 생긴다. (gcc hello.c만을 이용하여 컴파일 할 경우 a.out 라는 디폴트 이름으로 출력 파일이 생성된다.)
-o 는 출력 파일의 이름을 지정하는 옵션.
실행은 다음과 같이 한다.

# ./hello
hello

끝.

'OS > Linux' 카테고리의 다른 글

CentOS 6 WOL  (1) 2011.12.09
centos ssh 설치 및 설정  (2) 2011.09.27
centos 에 x-window 설치  (1) 2011.09.27
CentOS 6 네트워크 설치.  (0) 2011.09.27
Linux web server 보안 설정에 관하여...  (0) 2011.09.22
: