Linux

    [Linux, C] cat명령어 만들기

    #include #include #include #include #define BUF_SIZE 256 int main(int argc, char *argv[]){ int fdin; char *path = argv[1]; char buf[BUF_SIZE]; if(argc != 2){ printf("argc error \n"); exit(1); } fdin = open(path, O_RDONLY); if(fdin == -1){ printf("open() error \n"); exit(1); } read(fdin, buf, sizeof(buf)); printf("%s", buf); close(fdin); return 0; }

    [Linux, C] echo 서버 & 클라이언트 TCP/IP 통신

    서버 #include #include #include #include #include #include #define BUF_SIZE 1024 void error_handling(char *message); int main(int argc, char *argv[]){ int serv_sock, clnt_sock; char message[BUF_SIZE]; int str_len, i; // sockaddr_in : 소켓 주소의 틀을 형성해주는 구조체로 AF_INET일 경우 사용 struct sockaddr_in serv_adr; struct sockaddr_in clnt_adr; socklen_t clnt_adr_sz; // 사용 실패 if(argc != 2){ printf("Usage : %s \n", a..

    [Linux, C] Hello world 서버 & 클라이언트 TCP/IP통신, 소켓통신

    서버 / SERVER #include #include #include #include // 소켓 함수 사용위해 void error_handling(char *message); int main(int argc, char *argv[]){ // 소켓번호를 저장할 변수 두 개 선언 int serv_sock; int clnt_sock; // 주소 구조체 struct sockaddr_in serv_addr; // 서버주소 bind()에서 사용 struct sockaddr_in clnt_addr; // 클라이언트주소 accept()에서 사용 socklen_t clnt_addr_size; char message[] = "Hello World!"; // 기본 에러 // Usage : 사용법을 의미한다 if(argc !..

    [Linux, C] IP주소와 도메인네임을 서로 치환하는 프로그램 TCP/IP통신

    #include #include #include #include #include #include int main(int argc, char **argv){ struct hostent *host; struct sockaddr_in addr; int i; // 메모리 초기화 memset(&addr, '0', sizeof(addr)); // 인자 수 체크 if(argc!=2){ printf("Please, Input IP Address or Domain Name \n"); exit(1); } // 32비트 IPv4주소를 넣을 수있다. inet_addr()를 통해 32비트 변환 addr.sin_addr.s_addr=inet_addr(argv[1]); // addr : inet_addr()한수를 이용해 변환된 I..