thread 기반 동시 동작 서버[C, Linux] 안녕하세요. 오늘은 유닉스라는 과목을 들으면서 제가 만든 코드를 올려보려고 합니다. fork기반의 동시 동작 서버 위의 프로그램을 pthread를 이용해서 thread기반 동시 동작 서버로 변경 코드 코드는 아래와 같습니다. 코드 파일은 깃허브에서 다운받으실 수 있습니다. (귀찮아서 나중에 링크 올릴게요.) 1. fork동시동작 서버 2.thread기반의 동시 동작 서버 3.client로 사용한 코드 실행 환경: 왼쪽(학교에서 제공한 서버), 오른쪽(라즈베리파이-라즈비안) 1. fork기반의 동시동작 서버 입니다.(왼쪽이 클라이언트 오른쪽이 서버) 처음에 포트설정을 잘못해서 클라이언트 부분 사진에 connect 오류가 있었습니다. 2. thread기반의..
서버, 클라이언트 연습 프로그램[구구단, C, Linux] 안녕하세요. 오늘은 유닉스라는 과목을 들으면서 제가 만든 코드를 올려보려고 합니다. TCP서버 프로그램 server는 client가 접속하면 random한 구구단 문제를 client로 전송 client는 답을 입력하고 서버로 전송 server는 답이 맞았는지 틀렸는지 client로 전송 client는 server로 부터의 결과를 출력 코드 코드는 아래와 같습니다. 코드 파일은 깃허브에서 다운받으실 수 있습니다. (귀찮아서 나중에 링크 올릴게요.) 1. tcp서버(server) 코드 2. tcp구구단 클라이언트(client) 코드 실행 학교에서 제공한 서버와 제가 가지고 있는 라즈베리파이(라즈비안)를 이용해서 코드를 실행했습니다.(리눅스 환경) 1..
Thread 연습 프로그램[C, Linux] 안녕하세요. 오늘은 유닉스라는 과목을 들으면서 제가 만든 코드를 올려보려고 합니다. Parameter로 thread의 수를 입력받고, 입력받은 수 만큼 thread를 생성. 각 쓰레드는 생성된 순서의 번호와 자기 thread id를 출력. 생성된 순서의 번호는 thread function의 Parameter로 넘길 것. 코드 코드는 아래와 같습니다. 코드 파일은 깃허브에서 다운받으실 수 있습니다. (귀찮아서 나중에 링크 올릴게요.) 실행 실행은 리눅스 환경에서 했습니다.(라즈베리파이3b+ 라즈비안) 주요 코드 설명 흠흠.. 만들 때 조금 실수를 해서 7개를 만들었는데 0,1,2,3,4,5,6 이렇게 나오네요.(뭐 틀린 것은 아니니까..ㅋㅋㅋ) 일단 값을 넘기는..
thread를 사용한 구구단 프로그램[C, Linux] 안녕하세요. 오늘은 유닉스라는 과목을 들으면서 제가 만든 코드를 올려보려고 합니다. 구구단을 출력하는 thread program thread function이 한번 불리면 한 단을 출력 한번에 한단씩 섞이지 않고 출력(pthread_join사용) 코드 코드는 아래와 같습니다. 코드 파일은 깃허브에서 다운받으실 수 있습니다. (귀찮아서 나중에 링크 올릴게요.) 실행 실행을 하기 위해서 리눅스 환경(라즈베리파이 라즈비안)에서 실행했습니다. 컴파일은 gcc로 아래처럼 했습니다. (-lpthread 주의!!) 이렇게 컴파일한 파일을 실행해보면 아래 사진처럼 정상적으로 실행이 됩니다. (물론 9단까지 다 잘 됩니다.) 먼저 쓰레드 프로그래밍이 좋은점. 1. ..
fork를 사용한 구구단 프로그램[C, Linux] 안녕하세요. 오늘은 유닉스라는 과목을 들으면서 제가 만든 코드를 올려보려고 합니다. 1. 특정한 구구단 하나를 출력하는 구구단 프로그램 2. child process로 구구단을 출력하는 프로그램 2-1. (exec 함수 사용, 자식 프로세스가 출력을 완료할 때 까지 parent process는 대기) 코드 코드는 아래와 같습니다. 코드 파일은 깃허브에서 다운받으실 수 있습니다. (귀찮아서 나중에 링크 올릴게요.) 1. argv[]로 넘겨주면 해당 단을 출력하는 프로그램 2. 자식 프로세스로 위의 프로그램을 실행시키고 매개변수로 2~9까지 넘겨주는 프로그램 실행 해당 파일들은 리눅스환경(라즈베리파이 라즈비안)에서 실행한 결과입니다. 1. argv[]로 2..
여러 개의 프로세스를 사용해서 소수를 출력[C, Linux] 안녕하세요. 오늘은 유닉스라는 과목을 들으면서 제가 만든 코드를 올려보려고 합니다. 100,000까지의 모든 prime number(소수)를 출력하는 프로그램 위의 프로그램과 동일하지만 여러개의 프로세스를 이용하는 프로그램(병렬처리) time 명령을 이용해서 몇 초가 걸리는지 확인 코드 코드는 아래와 같습니다. 코드 파일은 깃허브에서 다운받으실 수 있습니다. (귀찮아서 나중에 링크 올릴게요.) 1. 하나의 프로세스로 소수를 출력하는 프로그램 2. 4개의 프로세스를 사용해서 소수를 출력하는 프로그램 실행 아래의 사진은 라즈베리파이 3b+ (라즈비안)에서 실행했을 때의 사진입니다. 1. 하나의 프로세스로 소수를 구하는 프로그램을 실행했을 때 2. ..
구구단 100단까지 출력하는데 걸리는 시간[C, Linux] 안녕하세요. 오늘은 유닉스라는 과목을 들으면서 제가 만든 코드를 올려보려고 합니다. (ㅎㅎ 근데 굳이 리눅스로 안하고 윈도우로 돌려도 잘돌아갑니다.) 너무 빨리 끝나니까 구구단을 100단까지 출력 gettimeofday()함수를 사용해서 시간을 측정하고 출력 코드 코드는 아래와 같습니다. 코드 파일은 깃허브에서 다운받으실 수 있습니다. https://github.com/ykarr/linux/blob/master/gugutime.c ykarr/linux Contribute to ykarr/linux development by creating an account on GitHub. github.com 실행 위 코드를 실행했을 때의 (일부) 사진입니..
모든 파일 이름과 inode 번호를 출력하는 프로그램[C, Linux] 안녕하세요. 오늘은 유닉스라는 과목을 들으면서 제가 만든 코드를 올려보려고 합니다. 특정 파일/디렉토리 명을 argv[]로 넘겨준다. argv[]로 넘겨받은 폴더의 모든 파일 이름을 출력 argv[]로 넘겨받은 폴더의 모든 inode 번호를 출력 코드 코드는 아래와 같습니다. 코드 파일은 깃허브에서 다운받으실 수 있습니다. https://github.com/ykarr/linux/blob/master/inodename.c ykarr/linux Contribute to ykarr/linux development by creating an account on GitHub. github.com 실행 위의 코드를 컴파일해서 실행해보겠습니다. ..
정보를 출력하고, 권한을 변경하는 프로그램[C, Linux] 안녕하세요. 오늘은 유닉스라는 과목을 들으면서 제가 만든 코드를 올려보려고 합니다. 특정 파일/디렉토리 명을 주면 모든 정보를 출력 권한을 700으로 변경하는 프로그램 코드 코드는 아래와 같습니다. 코드 파일은 깃허브에서 다운받으실 수 있습니다. (귀찮아서 나중에 링크 올릴게요.) 실행 이번에는 이 코드를 컴파일해서 실행해보겠습니다. 아래 사진을 보면 아시겠지만 dirtest라는 폴더를 argument로 주었습니다. 권한을 700으로 설정해주는 코드를 사용해서 argument로 넘겨준 dirtest라는 폴더의 권한이 drwx------이 된 것을 확인할 수 있었습니다. (자세한 건 아랫부분에) 주요 코드 설명 drwxrwx---이런 식으로 되어..
텍스트를 읽어서 4의 배수 파일로 저장[c, Linux] 안녕하세요. 오늘은 유닉스라는 과목을 들으면서 만든 제가 만든 코드를 올려보려고 합니다. 숫자만 쓰여있는 텍스트 파일을 읽고 그중에서 4의 배수만 골라서 four.txt 파일로 만드는 프로그램입니다. four.txt에서 내용을 읽는다. 4의 배수를 저장하는 파일의 이름은 argument로 받는다. 4의 배수를 저장하고 4의 배수의 총 개수를 출력한다. 이정도가 문제의 조건입니다. 텍스트 파일 아래 텍스트 파일을 사용했습니다. 코드 저는 이렇게 만들었습니다. 실행 이번에는 이 파일을 실행해보도록 하겠습니다. (위의 코드에서는 총개수가 fprintf문으로 나오지만 확인을 위해서 그냥 printf문으로 고쳐서 출력했습니다.) ./four
텍스트 파일에서 특정 문자만 읽어서 출력[C, linux] 안녕하세요. 오늘은 유닉스라는 과목을 들으면서 만든 코드를 올려보려고 합니다. 수업 초반에 저수준 파일 입출력을 해보기 위해 만든 예제라서 매우 쉬운 코드입니다. C언어 사용[저수준 파일 입출력] 리눅스(우분투) 환경 lseek()이용할 것 텍스트파일에서 특정한 문자만 printf문으로 출력하는 프로그램(파일의 내용을 알고있음.) 텍스트 파일의 내용. "If I have seen further it is by standing on the shoulders of Giants." 코드 실행 내용 확인= cat명령어 컴파일= gcc 실행= ./ 주요 코드 설명 1. 파일 open 2. 파일 오프셋 위치 지정.=lseek 3. 파일 읽기 read [리눅..
Webhacking.kr 5번 [문제풀이] 안녕하세요. 오늘은 webhacking.kr이라는 사이트의 5번 문제를 풀어보려고 합니다. 문제를 풀기 위해 해당 사이트로 이동해주세요. 웹 해킹 5번 문제풀이 [300점] 5번을 풀기 위해 들어가 보면 아래 사진처럼 초기 화면이 보일 겁니다 login버튼과 join버튼이 보이네요. 먼저 join버튼을 눌러봤습니다. Access_Denied가 나오네요. 이번에는 login을 눌러보겠습니다. (아이디는 아무거나 입력해봤습니다.) 이것도 Access Denied가 나오네요. id is not admin이라고 나오는 것을 보니 아이디를 admin으로 해서 로그인해야 할 것 같습니다. 아이디를 admin으로 하고 비밀번호는 대충 입력해봤습니다. 역시나 Wrong pas..