우분투를 부팅하려 했는데 위와 같은 오류가 떴을때의 난감함이란 뭐라 표현할 길이 없습니다... 저는 어떤 상황에서 저 오류가 생기는지 정확히 인지를 했음에도 도저히 해결할 방법이 보이지 않아서 고생을 하고 있었는데요. 특정 작업을 위해 우분투 12.04 LTS 버전에서 xorg-dev 패키지를 설치할 필요가 있었는데, 이 패키지만 설치하고 재부팅을 하면 위와 같은 오류가 뜹니다. 어떻게든 복구해보려고 ctrl+alt+f1~f6 (그래픽 모드가 아닌 콘솔모드)를 눌러봐도 아무 반응도 없고 그야말로 먹통이 되버립니다. - 추가사항 : 해당 오류의 원인은 정확히 말하자면 잘못된 그래픽 드라이버의 사용이기 때문입니다. 언급한 xorg-dev 패키지 이후 생기는 이유는 xorg-dev가 맘대로 그래픽 드라이버를 ..
우분투 13.10을 사용하다가 14.04 LTS 버전이 나올때까지 잠시 12.04로 내려왔습니다. 그리고 기존에 작성중인 코드를 컴파일 하려다 보니까, g++의 옵션중 하나인 -std=c++11 (c++11 버전의 컴파일러를 사용하는 것)가 정상적으로 작동하지 않았습니다. 원인은 g++ 버전이 낮은 것 때문이었습니다. apt-get install build-essential 로 설치되는 버전은 gcc, g++ 모두 4.6 버전입니다.(자신의 컴파일러 버전을 확인 하는 방법은 gcc --version 입니다.) 13.10을 사용할 땐 몰랐는데, 4.7 이상의 버전이 설치되어 있어야 저 위의 옵션이 사용가능한 것 같습니다. 컴파일러의 버전업을 시키기 위해서 먼저 레퍼지토리(저장소)를 추가해야합니다. $ su..
atoi(), itoa() 함수에 대하여.. 블로그 유입로그를 보다보니 위의 함수에 관련된 유입이 많아서 위 함수에 관련된 포스팅을 합니다. 이 함수들은 stdlib.h 파일에 선언되어 있습니다. 다만, itoa 함수의 경우 비 표준함수입니다. C99/C11규격에서 정의되지 않고, MS 컴파일러에서만 이용가능한 함수입니다. 즉, Linux/macOS 등 비 마이크로소프트 운영체제(컴파일러)에서는 stdlib.h 헤더파일을 include 한다고 해도 itoa 함수를 사용하지 못합니다. 따라서 저는 itoa함수 대신에 다른 방법으로 문자열 전환을 권유해 드렸습니다. c/c++ sprintf, snprintf 함수 - 해당 포스팅을 보고 싶으시면 이곳을 클릭하세요 1. 문자열을 정수형으로 변환 이때 사용하는 ..
가변인자 함수가 있듯이, 매크로도 가변인자 매크로가 있습니다. 가변인자 매크로 역시 ... 의 매개변수를 받는데요. 매크로의 경우 가변인자 함수보다 훨씬 사용하기 간편하게 되어있어 자주 사용하는 편입니다. #define VA_PRINT(fmt, ...) printf(fmt, __VA_ARGS__) 위와 같이 사용할 수 있습니다. 가변인자 함수 때처럼 va_startf나 vnprintf 따위의 매크로를 이용할 필요가 없습니다. __VA_ARGS__ 를 넣어주면 알아서 포맷으로 변환하여 출력해 줍니다. C코드 예제를 하나 만들어보았습니다. #include #define VA_PRINT(fmt, ...) fprintf(stdout, "결과: " fmt "\n", __VA_ARGS__) int main() { ..
1. # 연산자 매크로에서 # 연산자는 문자열로 변환(치환) 시켜주는 연산자 입니다. 아주 단순한 예를 들어보았습니다. 아래의 예제를 한번 살펴보도록 하겠습니다. #include #define PRINT(s) printf(#s) int main() { PRINT(THIS IS TEST CODE); return 0; } 만일 PRINT 매크로에서 s앞에 붙은 #이 빠지게 되면 오류가 발생하게 됩니다. 왜냐하면 매크로변수 s는 THIS IS TEST CODE를 받게 되는데, c 문법에 따라 따옴표가 없기 때문에 이것들을 하나의 '변수'로 인식하게 됩니다. #을 빼주고 "THIS IS TEST CODE" 라고 앞뒤로 따옴표를 붙여주면 잘 실행이 됩니다. 즉, #은 받아온 매크로변수를 문자열로 바꿔주는, 더 쉽..
옛날에 언젠가 printf의 원형이 궁금했던적이 있었다. 비주얼스튜디오 6.0인가.. 오래된 비주얼스튜디오 버전을 사용하고 있었을 때, stdio.h 문서파일을 열어서 처음 printf의 원형을 마주하게 되었다. int printf (const char* Format, ...); 그때 기억으로 printf는 위와 같이 아주 단순했는데.. 2013 버전에 있는 표준입출력 문서로 찾아보니 아래와 같이 나와있다.. 매크로의 향연. _Check_return_opt_ _CRTIMP int __cdecl printf(_In_z_ _Printf_format_string_ const char * _Format, ...); 솔직히 의미는 잘 모르겠지만, 매크로를 잠깐 살펴본 내 생각을 적어보자면 sal.h 라는 헤더파일..
- Total
- Today
- Yesterday
- lua table
- 안시 색상
- QT
- 리눅스 터미널 색상
- 폰트 조정
- vim
- 챗봇
- angular2
- ansi color
- 안시 컬러
- C언어
- itoa
- terminal 색
- Angular
- JavaScript
- Swift
- zone
- 스위프트
- Zone.js
- 우분투 16.04
- ZONES
- observable
- typeScript
- qemu linux arm
- NgZone
- git 설정
- git proxy
- 타입스크립트
- ECMA2015
- Rx.js
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |