300x250
반응형

리눅스를 사용하면서

현재 디스크 사용량을 확인 해야 하는 경우가 발생.

또한 계정별? 혹은 해당 폴더의 용량을 체크 해야 하는 경우가 종종 발생한다.

해당 명령어를 정리 해보자.

 

먼저 전체 사용량 체크 하기

df명령어

 

 

"df -h"

위 명령어를 주면 전체 사용량을 확인 할 수 있다.

Avail부분은 현재 사용 가능한 용량이다.

 

사용량 체크는 중요하다

용량이 꽉차면 코딩시 저장이 안되며, 명령어를 적어도 정상적으로 처리가 불가능 할 수 있다.

 

 

그러면 어느 계정? 혹은 의심되는 폴더의 용량을 체크 해보자.

du 명령어 사용하기.

 

du명령어는 기본이 kb단위 일거다. 그런데 이게 보기가 좀 그렇다.

보기 쉽게 mb단위로 옵션을 넣어주자.

 

du -sh example

 

위 캡쳐처럼 15M 보기 편하게 되어 있다.

 

728x90
300x250
반응형

일을 하거나 혹은 과제 중에 급하게 내가 한 로직이 맞거나 기본적인 테스트를 위한 도구이다.

보통 테스트를 하려면 다시 프로그램을 실행시켜서 이래저래 빌드도 해야 하고 경우에 따라서 불편한 경우다 많다.

그 때 온라인에서 바로 간단하게 테스트를 할 수 있는 사이트를 소개 하려고 한다.

 

사이트 명은 : GDB Online Debugger

본인은 주로 C혹은 C++를 사용을 하는데 매우 유용 하다.

www.onlinegdb.com

 

GDB online Debugger | Compiler - Code, Compile, Run, Debug online C, C++

Online GDB is online compiler and debugger for C/C++. You can compile, run and debug code with gdb online. Using gcc/g++ as compiler and gdb as debugger. Currently C and C++ languages are supported.

www.onlinegdb.com

원하는 언어를 선택 하여 간단하게 테스트를 진행 할 수 있다.

728x90
300x250
반응형

오늘은 static변수 및 static 함수에 대해서 공부를 해볼 예정이다.

static변수및 함수. 정적 변수 와 정적 함수라고 표현 한다.

우리는 일반적으로 함수를 정의 하면 여러군대에서 호출 하여 사용 한다.

그러나 static 키워드를 붙이면 해당 소스 파일 내부에서만 사용이 가능 하다.

그럼 예제를 보도록 하자.

 

일반적으로 사용 하는 함수방식의 결과값이다. 

우리가 흔히 아는 방식으로 결과 값이 나온다.

 

만약에 다른 소스코드에 같은 함수명을 사용 한 경우는 어떨까?

test.c라는 파일을 추가 하고 똑같은 func1을 정의 하면 다음과 같은 에러가 발생.

중복으로 func1이 지정되어 있어서 컴파일 에러를 발생 시킨다.

 

이럴 때 static을 사용 하면 해당 에러가 사라진다.

둘중에 하나만 하던지 아니면 둘다 하는게 좋다.

개인적으로는 중복이 되는 네이밍이 있다면 중복되는 네이밍 전부 static을 붙여 주자.

 

static 키워드를 붙이면 해당 에러가 사라 진다.

 

static 변수.

static변수는 값이 계속 유지가 된다.

또한 global변수와 다르게 해당 코드 내에서만 호출이 가능하다.

 

 

728x90
300x250
반응형

간단하게 파일에 내용을 가져와서 사용을 해야 할 일이 있어서 테스트겸 만들어 보았다.

C++을 잘 사용 할 줄몰라서 C/C++를 혼용하여 사용 하였으면 최종 데이터 저장 컨테이너는

map으로 사용 하였고, 멀티맵을 하지 않은 이유는 겹치는 key는 발생 할 일이 없을 것으로 판단 하였다.

 

테스트 파일 원본.
//YAS.
DEMO 3

//Tuen.
TONVOLUME 22

//Max T
MAXVOLUME 45

//Reset Timer
RESETTIMER 0

//KEY PATEERN
KEY 2

//USBPLAY
//USBREPEAT ALL
#include <iostream>
#include <stdio.h>
#include <string.h>
#include <cstring>
#include <map>
#include <vector>

using namespace std;

typedef struct {
    string key;
    string value;
}USB_DATA;

map<string, string> mapData;

int TrimRight(char *p)
{
    int len = strlen(p);

    if(len <= 0)
    {
        p[0] = 0;
        return 0;
    }
    else
    {
        len--;
        while(len)
        {
            if((unsigned char)p[len] > ' ') break;

            p[len] = 0;
            len--;
        }
    }

    return strlen(p);
}

bool parsingData(char* str)
{
    int cnt = 1;
    char *tok = NULL;

    USB_DATA t_data;

    if(str != NULL)
    {
        if(str[0] == '/' && str[1] == '/')
        {
            return false;
        }
        TrimRight(str);

        tok = strtok(str, " ");
        if(tok == NULL)
        {
            return false;
        }

        t_data.key = tok;

        tok = strtok(NULL, " ");
        if(tok == NULL)
        {
            return false;
        }

        t_data.value = tok;
    }

    //printf("struct data[%s][%s]\n",t_data.key.c_str(), t_data.value.c_str());

    mapData.insert(make_pair(t_data.key, t_data.value));

    return true;
}

bool getDataFile()
{
    FILE    *fp = fopen("demo_mode3.txt","r");
    int     len = 0, total = 0;
    char    buff[64] = {0,};

    if(fp == NULL)
    {
        printf("file open fail\n");
        return false;
    }

    char *p;
    while(!feof(fp))
    {
        p = fgets(buff, sizeof(buff), fp);
        if(p != NULL)
            parsingData(p);
    }

    fclose(fp);

    return true;
}

void print_map()
{
    for(auto itr = mapData.begin(); itr != mapData.end(); ++itr)
    {
        cout << "key : " << itr->first << ", " << "value : " << itr->second << endl;
    }
}

int main(void)
{
    printf("Program parsing\n");

    getDataFile();

    print_map();

    return 1;
}

 

결과 값. 

 

위의 결과에서 주석은 제거, 빈공간 제거등을 하여서 데이터만 가져오도록 하였고,

데이터 구분은. ' '(스페이스)로 처리 되어있다.

728x90
300x250
반응형

Error Message :

Unable to acquire the dpkg frontend lock (/var/lib/dpkg/lock-frontend) is anothrer process using it?

 

위 내용과 같은 에러가 발생 할 경우는?

 

1. sudo rm /var/lib/apt/lists/lock

2. sudo rm /var/cache/apt/aechives/lock

3. sudo rm /var/lib/dpkg/lock*

4. sudo dpkg --configure -a

5. sudo apt update

이후 다시 apt install 하여 기존에 하던 설치를 하면 정상적으로 설치가 완료 된다.

 

728x90
300x250
반응형

github를 하다 보면 whitespace error가 발생하는 경우가 있다. 이거 생각보다 짜증난다.

그래서 혹시 모를 상황에서 whitespace를 제거 하는건 귀찮다. 

vi에서 사용 할것.

:%s/\s\+$//e

728x90
300x250
반응형

TeraTerm을 설치 후 SSH or UART 시리얼 연결을 통해 

명령어등등을 사용 할 때가 있는데, backspace 대신에 delete를 사용 해서 사용 하는 경우가 있다.

이 때 우리가 기본적으로 아는 Delete key동작을 안하고 backspace 동작을 하는 경우가 있다.

초기 설정 값 문제로.

TERATERM.ini 파일을 수정 하면 해결 할 수가 있다.

 

방법 소개.

1. Open TERATERM.ini

2. DeleteKey = on - > off 변경.

3. TERATERM 재시작.

 

끝.

 

728x90

'프로그래밍 > ETC' 카테고리의 다른 글

온라인 코딩 테스트 사이트  (0) 2021.04.11
[FFMPEG] ffmpeg option cmd정리  (0) 2020.12.17
Wowza cloud Streaming 설정 및 재생 방법  (0) 2020.12.17
300x250
반응형

github에서 branch를 가져 오려고 할 때

"Are you sure you want to continue connecting (yes/no)? 가 발생 할 때

자동으로 동작 되도록 하기 위하여 ssh-keygen을 하여 key값을 생성 한다.

 

이럴때 정상적으로 동작이 안될 때 해결 방법.

 

git config --global user.email "example@example.com"

git config --global user.name "example"

을 입력 후 재 시도 하면 정상적으로 동작 되는 것을 확인.

728x90

+ Recent posts