목록 Computer Science (93)
- storage class (기억 부류)는 변수의 종류에 따라서 초기화나 파괴 시기, 얼마나 지속되어야하는지를 결정하는 역할을 한다.
정적 스코프 : 컴파일 시에 결정되는 가장 가까운 바깥쪽의 스코프 변수 값으로 처리 동적 스코프 : 컴파일 시 자료형 체크 불가능 : 대개 인터프리티드 언어에서 사용되는 방식 : 스택을 이용해서 호출되는 스코프들을 쌓고 가장 가까운 것의 변수 값이 바인딩 int count = 10; void foo2(){ print(count); } void foo1(){ int count = 20; foo2(); } main(){ foo1(); } // 정적 스코핑 : foo2의 출력은 count = 10 // 동적 스코핑 : foo2의 출력은 count = 20
- Binding Times : 언어 설계 (language design time) : 연산자와 연산 바인딩 : 언어 구현 (language implementation time) : 데이터 타입과 데이터 값 바인딩 : 프로그램 작성 (program writing time) : 알고리즘, 데이터 구조, 모듈 바인딩 : 컴파일 (compile time) : 변수와 데이터 유형 바인딩 : 링크 (link time) : 메모리 내의 프로그램 전체 라이브러리, 모듈 확정 : 로드 (load time) : 물리적 주소 선택 : 실행 (run time) : 변수에 메모리가 위치한 값 바인딩
ctags / cscope - ctags와 cscope를 이용하여 코드를 분석하는 방법과 유용했던 팁을 정리하였다. ctags - tj 명령어 뒤에 원하는 태그 이름을 입력하는 것으로 해당 함수나 변수가 선언된 위치로 점프할 수 있다. :tj "tags" - 명령어를 이용하지 않고 원하는 함수나 변수 위에 커서를 두고 점프하고 이전으로 돌아갈 수 있다. ctrl + ] ctrl + t cscope - cs type option keyword로 실행한다. type은 add / find / help / kill / reset / show 가 있고, find(f)와 아래 옵션을 통해 키워드를 검색한다. cscope commands[f] g : find the definitions s : search this ..
ctags / cscope - 리눅스에서 길고 복잡한 코드를 다룰때 유용한 유틸리티 두가지. ctags - 소스 코드의 태그(변수, 함수, 매크로 등의 선언 부분)들의 데이터 베이스 파일을 생성해 인덱스를 만들어 주어, 코드 분석 시 탐색할 수 있도록 하는 유틸리티이다. sudo apt-get install ctags - tags 파일을 생성하여 소스 코드의 태그를 데이터 베이스로 관리할 수 있다. ctags "Filename" ctags -R - 위 두 명령어처럼 ctags 다음에 파일 이름을 명시하는 것으로 해당 파일만 tags 파일을 만들거나, 아래 ctags -R처럼 현재 디렉토리의 모든 파일/ 하위 디렉토리의 모든 파일을 대상으로 tags 파일을 만들 수 있다. - vi 에디터에 tags 파일 ..
Shell / Shell script / Terminal, Console Shell - Shell은 운영체제 개념을 공부하면서 정리하였다. 쉘은 커널을 감싸서 사용자의 명령을 해석하여 커널에 전달한다. 쉽게 쉘은 사용자와 커널 사이의 인터페이스가 되는 프로그램이다. 쉘과 커널로 분리되어 쉘만 교체한다면 사용자가 직접 커널을 사용하는 인터페이스를 쉽게 선택할 수 있도록 한다. echo $SHELL 위 명령어를 터미널에 입력하는 것으로 현재 사용 중인 shell을 확인 할 수 있다. Shell script - 간단한 shell script 예제를 만들고 실행시켰다. 사용한 shell은 bash 이다. vi로 script 파일을 작성한다. #!/bin/bash 스크립트 상단에 #!/bin/bash 를 추가하고..
ens33 setting - CentOS 7에서 네트워크 인터페이스(en33)을 설정. Contents - ping 8.8.8.8을 입력하여 네트워크 사용 가능 여부를 파악한다. 사용 불가일 경우 ip addr로 사용 가능한 네트워크를 확인한다. 2: ens33을 확인하고 맞다면 ifup ens33을 입력한다. (만일 아무 출력이 없을 경우 ifdown ens33을 입력 후 다시 ifup ens33을 입력) 다시 ping 8.8.8.8을 입력하여 네트워크 사용 여부를 확인하고 잘 작동한다면, vi로 /etc/sysconfig/network-scripts/ifcfg-ens33을 열어 맨 마지막 줄 ONBOOT의 "no"를 "yes"로 변경 후 저장한다.
vi visual editor - vi는 리눅스의 에디터이다. Command line mode / Insert mode / Edit mode로 세가지 모드로 작동한다. vi로 진입 / a,i로 insert mode 진입 / esc로 edit mode 진입 - 기본적인 vi 명령어 기록 Command line mode :q 종료 :q! 저장없이 강제 종료 :wq 저장 후 종료 Edit mode - 커서 이동 / 검색 h cursor to left l cursor to right ctr+f next page ctr+b prev page / search n next b prev pragragh - 삭제 및 변경 x 커서 위 문자 삭제 dw 커서 뒤 단어 삭제 dd 커서 라인 삭제 r 커서 위 문자 변경 - 복..