전체 글 103

[c언어] 입출력 정리

printf("\'Hello \'"); //작은따옴표 표시 printf("\"Hello \""); //큰따옴표 표시 scanf("%1d %1d %1d %1d %1d",&a, &b, &c, &d, &e); //1개의 정수씩 변수에 저장한다. scanf("%u", &n) //unsigned int 입력받으려면 %u를 사용한다. scanf("lf", &n) //double(long float) 형식으로 입력 %.11lf를 사용하면 소수점 이하 11자리까지 출력된다. fgets()를 사용하면 공백 문자가 포함되어있는 문장을 입력받아 저장할 수 있다. 만약, 아래처럼 scanf("%s",...)를 이용해 문장을 입력받으면, 첫 번째 단어까지만 저장된다 char data[2001]; fgets(data, 2000,..

study/C언어 2020.04.02

CentOS 7 firewall 방화벽 설정

◎ 방화벽 설정 시 주의 사항​ - 아래의 안내 예제를 그대로 따라하시면 방화벽 설정 오류 및 각종 서비스의 통신에 문제가 발생할 수 있습니다. 설정을 참고 하시어 사용하시는 서비스에 맞게 설정 바랍니다. - ​CentOS 7에서는 기본 방화벽이 Firewalld 데몬으로 변경되어 명령어 및 설정이 다르므로 본인의 서버 OS 버전에 맞게 설정 바랍니다. ◎ CentOS 7에서 firewalld 방화벽 설정 방법​​​ 1. firewalld 설치 확인 및 설치 방법​ - CentOS 7 Minimal 설치 시 firewalld 데몬이 설치되어 있습니다. (1) firewalld 설치 확인 # rpm -qa | grep firewalld (2) firewalld 설치가 되어 있지 않으시면 firewalld ..

linux/CentOS 2020.04.01

CentOS7 - APM 웹서버 구축

1. 의존성 라이브러리 설치 아래는 라이브러리가 설치되어있는지 확인해보는 부분이며 APM에 꼭 필요한 패키지가 있습니다. rpm -qa libjpeg* libpng* freetype* gd-* gcc gcc-c++ gdbm-devel libtermcap-devel Yum 으로 아래의 필요한 라이브러리를 한번에 전부 설치합니다. (한번에 관련된 의존성도 같이 설치가 됩니다.) 2. [APM] Apache, PHP, MariaDB 설치 [순서는 : Apache, Maria, PHP 진행] 아파치(Apache 2.4) 설치 yum install httpd 마리아(Maria DB 10.1) 설치 기존의 Yum 으로 설치할경우는 Maria DB 5.5 버전이 설치가 됩니다. 최신버전으로 설치할경우 Yum 미러경로..

linux/CentOS 2020.04.01

인수 전달 방법

인수 전달 방법 함수를 호출할 때에는 함수에 필요한 데이터를 인수(argument)로 전달해 줄 수 있습니다. 이렇게 함수에 인수를 전달하는 방법에는 크게 다음과 같이 두가지 방법이 있습니다. 1. 값에 의한 전달(Call by value) 2. 참조에 의한 전달(Call by reference) 값에 의한 전달(Call by value) 값에 의한 전달 방법은 인수로 전달되는 변수가 가지고 있는 값을 함수 내의 매개 변수에 복사하는 방식입니다. 복사된 값으로 초기화 된 매개변수는 인수로 전달된 변수와는 완전히 별개의 변수가 되며, 따라서 함수 내에서 매개변수 조작은 인수로 전달되는 변수에 아무런 영향을 끼치지 않습니다. 실행 결과 변수 var의 초기값 : 10 local() 함수 호출 후 var의 값 ..

study/C언어 2020.03.31

배열(Array) 과 포인터(Pointer)

배열(Array) 이란? 배열은 같은 타입의 변수들로 이루어진 유한 집합으로 정의됩니다. 배열을 구성하는 값을 배열 요소(element)라고 하며, 배열 위치를 나타낸 숫자를 인덱스(index)라고 합니다. 1차원 배열 타입 배열 이름[상수]; 타입 배열 이름[ ] = {배열 요소 1, 배열 요소 2,....}; 2차원 배열 타입 배열 이름[행][열]; 포인터(Pointer) 주소 값의 이해 데이터의 주소 값이란 해당 데이터가 저장된 메모리의 시작 주소를 의미합니다. C언어에서는 이러한 주소 값을 1바이트 크기에 메모리 공간으로 나누어 표현합니다. 예를 들어, int 형 데이터는 4바이트의 크기를 가지지만, int형 데이터의 주소값을 시작 주소 1바이트만 가리킵니다. C언어에서 포인터(pointer) 란..

study/C언어 2020.03.31

함수(Function) 란?

함수란? 프로그래밍에서 함수란 하나의 특별한 목적의 작업을 수행하기 위한 코드의 집합 함수 사용 이유 1. 함수를 사용하는 가장 큰 이유는 바로 박복적인 프로그래밍을 피할 있다. 2. 프로그램에서 독립 작업을 여러 번 반복해야 할 때는 해당 작업을 수행하는 함수를 작성하면 된다. 3. 프로그램이 필요할 때마다 작성한 함수를 호출하면 해당 작업을 반복해서 수행 가능 함수의 원형 선언 int bigNum(int, int); //함수의 원형 선언 함수의 정의 1. 반환 타입(return type) : 함수가 모든 작업을 마치고 반환하는 데이터의 타입을 명시합니다. 2. 함수 이름 : 함수를 호출하기 위한 이름을 명시합니다. 3. 매개변수 목록(parameters) : 함수 호출 시에 전달되는 인수의 값을 저장..

study/C언어 2020.03.31

스택 프레임(Stack frame)

스택 프레임 개념 메모리의 스택(Stack) 영역은 함수의 호출과 관계되는 지역변수와 매개변수가 지정되는 영역 스택 영역은 함수의 호출과 함께 할당되며, 함수의 호출이 완료되면 소멸합니다. * 함수가 호출되면 스택에는 함수에 매개변수, 호출이 끝난 뒤 돌아갈 반환 주소, 함수에서 선언된 지역 변수 등이 저장된다. 이렇게 스택 영역에 차례대로 저장되는 함수를 호출 정보를 스택 프레임(Stack frame)이라고 합니다. 스택은 후입 선출 LIFO(Last-in First-out) 방식이라고도 합니다. 스택 프레임 동작 방식 예제) int main(void) { func1(); //func1() 호출 return 0; } void func1() { func2(); //func2() 호출 } void func..

study/C언어 2020.03.31

CentOS 6 초기 세팅(2)

/tmp 보안 설정 /tmp 디렉터리는 "Tempolory File" 즉 임시 파일이 저장되는 장소입니다. 기본적으로 /tmp 디렉터리는 누구나 읽고, 쓰고, 실행할 수 있게 설정되는데요. 이러한 이유로 웹 등으로 스크립트를 심는다던가, 특정 파일을 실행시킨다던가 하는 공격에 굉장히 취약합니다. 따라서 기본적으로 OS 설치를 하고 나면 /tmp 디렉터리의 보안 설정은 당연한 것처럼 진행해줘야 합니다. 설정 방법은 간단합니다. 1. OS 설치시 /tmp 파티션 생성(임시 파일이 저장되는 디렉터리 이므로 보통 1GB 할당) /var/tmp 삭제 2. # rm -rf /var/tmp 3. /tmp 를 var/tmp로 심볼릭 링크 생성 # ln -s /tmp /var/tmp 4. /etc/fstab을 열어서 다..

linux/CentOS 2020.03.15

CentOS6 - 초기 세팅(1)

CentOS 6 네트워크 기본 설정 리눅스는 OS설치 과정에서 네트워크를 설정하지 않은 경우 설치 후에 설정을 해줘야 합니다. 한번 네트워크 설정 파일을 열버 보겠습니다. # /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=eth0 # 인터페이스 장치 명 TYPE=Ethernet # Ethernet 설정 ONBOOT=no # 부팅 시 이 인터페이스를 켤지 말지에 대한 여부 NM_CONTROLLED=yes # GUI 인터넷 관리 툴 사용 여부 BOOTPROTO=dhcp # DHCP/static 사용 여부 HWADDR= # 인터페이스의 MAC주소 설정 DEFROUTE=yes # 목적지를 모를 때 무조건 넘기는 인터페이스로 설정 여부 PEERDNS=yes # DHCP 사..

카테고리 없음 2020.03.15

CentOS7 - 초기 세팅(2)

/tmp 보안 설정 /tmp 디렉터리는 임시파일들을 저장하는 파티션입니다. ​ 임시파일들을 저장하는 곳인 만큼 악의적으로 악성파일이 심어질 수도 있기 때문에 보안이 중요합니다. ​ CentOS 7 설치 중 /tmp 파티션을 생성하셨을 경우에만 이어집니다. ​ /tmp 보안 설정을 하기 전 /var/tmp 폴더를 삭제한 후 /tmp 폴더를 심볼릭 링크로 이어 줍니다. # rm -rf /var/tmp # ln -s /tmp /var/tmp 이제 /etc/fstab 파일을 열어 /tmp 파티션에 대한 마운트 설정을 해보겠습니다. # vim /etc/fstab . . . UUID = ********-****-****-********** /tmp xfs default,nodev,nosuid,noexec 0 0 /..

linux/CentOS 2020.03.15