반응형

Linux/Linux_Source 9

Linux Shell 구현 소스

/* * http://sosal.tistory.com/ * made by so_Sal */ 유닉스 프로그래밍 수업에서 (비록 리눅스를 사용하지만)쉘 프로그래밍 과제가 나와, 했던 과제를 한번 올려 봅니다.- Linux shell programming 쉘(shell) 구현에서 간단한 시그널처리와 fore / back-ground 프로세싱 처리 등에 관하여 구현해보았습니다. * SIGNAL 기능. - ctrl + c : SIGINT - ctrl + z : SIGTSPT - wait 상태의 부모프로세스는 SIGCHLD로 다시 run. - rs (restart) : 자식을 SIGCONT signal로 stop 상태를 run으로, 부모는 restart된 자식을 다시 waitpid로 기다림 * lss : ls - ..

Linux/Linux_Source 2011.05.23

Linux :: pwd 현재 디렉터리 경로 프로그램 소스

/* * http://sosal.tistory.com/ * made by so_Sal */ 1. getcwd() 함수 2. 예제 1. getcwd() 함수 #include char* getcwd( char* buf, size_t bufsize); 경로를 나타내는 문자열의 시작 주소가 반환됩니다. buf :: 현재 디렉토리의 경로가 저장될 배열 bufsize :: 현재 디렉토리 경로 문자열의 크기 (unsigned int = size_t) 2. 예제 #include #include int main(void){ char buf[BUFSIZ]; int bufsize; getcwd(buf,bufsize); printf("buf :: %s , size :: %d \n",buf,bufsize); return 0; ..

Linux/Linux_Source 2010.01.29

Linux :: 간단한 Port scanner 구현하기

/* * http://sosal.tistory.com/ * made by so_Sal */ c언어와 소켓 프로그래밍에 대한 지식, OSI 7계층 프로토콜중 TCP, IP, UDP, ICMP와 전송계층, 네트워크 계층의 프로토콜 지식이 있으면 충분히 이해할 수 있는 간단한 내용입니다. 예제 소스도 아주 간단하게 "열려있는지"만 파악하는 내용이므로 어렵지 않게 이해하실 수 있을것이라 생각합니다. 포트스캔 하는 방법도 상당히 여러가지고, 무척 어려운 부분이지만 아주 간단하게 준비하였습니다. 이 글을 보시고 난 후 옵션이나 기능을 추가하시면서 더 멋있는 포트스캐너를 만들어 보세요. 1. port? 2. portscan? 3. 예제 소스 CTF 해킹방어대회나 서버 모의 해킹을 할 때 가장 기본적으로 하는것중에 하..

Linux/Linux_Source 2010.01.27

Linux - ps 프로세스 리스트 출력 프로그램 및 소스

/* * http://sosal.tistory.com/ * made by so_Sal */ 이 포스팅에서 다루는 내용 :: DIR *opendir(const char *dirname); :: int readdir(unsigned int fd, struct dirent *dirp, unsigned int count); :: struct dirent{}; :: int closedir(DIR *dir); :: int lstat(const char* path, struct stat* buf); :: struct stat{}; :: ==================예제================== #include #include DIR *opendir(const char *dirname); opendir() ..

Linux/Linux_Source 2010.01.26

fork, pipe를 이용한 간단한 프로세스 통신 예제

/* * http://sosal.tistory.com/ * made by so_Sal */ #include #include #include int main(void){ char buffer[BUFSIZ]; int fd[2]; if(pipe(fd)==-1){ perror("pipe error..\n"); exit(0); } pid_t pid; pid = fork(); if(pid == -1){ perror("fork error..\n"); exit(0); } else if(pid==0){ //자식 프로세스의 경우// write(fd[1],"This letter is from child",BUFSIZ); sleep(1); //레이스 컨디션 문제 발생. 부모보다 자식이 먼저 fd에 있는 자료를 //가져갈 수 ..

Linux/Linux_Source 2009.12.18

Socket - client 소스, 다중 프로세스 채팅방

/* * http://sosal.tistory.com/ * made by so_Sal */ / * * 리눅스 기반입니다. * TCP/IP AF_INET 외부 네트워크 도메인 기반입니다. * fork() 함수를 이용한 다중 프로세스 원리 기반 채팅방입니다. * 문자열이 자신이 입력한것인지, server가 입력한 것인지 구분하는 ID는 넣지 않았습니다. * exit를 입력하거나 받으면 종료됩니다. * 최대로 보낼수있는. 받을수 있는 문자열의 길이는 MAXLINE 메크로를 통하여 정하였습니다. * 프로그램의 매개변수는 argv[1]과 argv[2]로, 각각 ip와 port번호를 받습니다. * made by sosal. http://sosal.tistory.com/ * / #include #include #in..

Linux/Linux_Source 2009.11.07

Socket - server 소스. 다중 프로세스 채팅방

/* * http://sosal.tistory.com/ * made by so_Sal */ / * * 리눅스 기반입니다 * TCP/IP AF_INET 외부 네트워크 도메인 기반입니다. * fork() 함수를 이용한 다중 프로세스 원리 기반 채팅방입니다. * 문자열이 자신이 입력한것인지, client가 입력한 것인지 구분하는 ID는 넣지 않았습니다. * exit를 입력하거나 받으면 종료됩니다. * 최대로 보낼수있는. 받을수 있는 문자열의 길이는 MAXLINE 메크로를 통하여 정하였습니다. * 프로그램의 매개변수는 argv[1]로 port번호를 받습니다. * made by sosal. http://sosal.tistory.com/ * / #include #include #include #include #in..

Linux/Linux_Source 2009.11.07

cp. 파일 복사 프로그램 copy

/* * http://sosal.tistory.com/ * made by so_Sal */ cp.c 파일 복사 프로그램 소스입니다. 가장 기본적인 소스입니다. #include #include #include #include #include #include int main(int argc,char* argv[]){ if(argc!=3){ printf("%s [file name] [copy file name]\n",argv[0]); exit(0); } char *cmd1; char *cmd2; cmd1 = argv[1]; //file name cmd2 = argv[2]; //copy file name char block[BUFSIZ]; int in, out; int nread; in = open(cmd1,O..

Linux/Linux_Source 2009.11.01

Linux 간단한 ls 디렉토리 출력 프로그램 구현

/* * http://sosal.tistory.com/ * made by so_Sal */ LINK 2){ perror("Usage :: _ls [Directory] \n"); exit(EXIT_FAILURE); } char* position; position = argv[1]; // 메인함수는 디렉토리 목록을 출력할 위치를 _ls(position,0); // 인자로 받아 _ls 함수의 매개변수로 전달하는 일만 수행합니다. exit(0); } void _ls(char* pos,int depth){ //depth는 처음 0이고, 디렉토리 출력중 새로운 디렉토리를 만나면 //depth를 증가시켜 재귀적으로 함수를 다시 호출합니다. DIR *dp; // 실제 파일을 가리키는 포인터 struct dirent *..

Linux/Linux_Source 2009.11.01
반응형