2013년 11월 26일 화요일

파일의 정보 출력하기

/* 파일의 정보 출력 */

#include <unistd.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <stdio.h>

int main(int argc, char *argv[])
{
        int filestat;
        struct stat fileinfo;

        mode_t filemode;

        if(argc != 2){
                fprintf(stderr,"Usage: %s <filename>\n", argv[0]);
                exit(1);
        }

        if((stat(argv[1], &fileinfo)) == -1){
                fprintf(stderr,"Get %s stat failed\n", argv[1]);
                exit(1);
        }

        filemode = fileinfo.st_mode;

        if(S_ISREG(filemode))
        {
                printf("정규파일입니다.\n");
        }
        else if(S_ISLNK(filemode))
        {
                printf("심볼릭 링크입니다.\n");
        }
        else if(S_ISDIR(filemode))
        {
                printf("디렉토리입니다.\n");
        }
        else if(S_ISFIFO(filemode))
        {
                printf("FIFO입니다.\n");
        }
        else if(S_ISSOCK(filemode))
        {
                printf("소켓파일입니다.\n");
        }

        return 0;
}

Reentrancy Attack: 블록체인 스마트 컨트랙트의 치명적인 취약점

블록체인 기술이 전 세계적으로 주목받으면서 스마트 컨트랙트(Smart Contract)의 사용이 급격히 증가하고 있습니다. 하지만 그만큼 보안 취약점도 함께 늘어나고 있는데, 그 중에서도 Reentrancy Attack(재진입 공격)은 매우 치명적이고...