C언어 졸라맨 이동. 안녕하세요. 오늘은 공부하기 싫어서 특수문자로 졸라맨을 만들고 이동시켜보는 간단한 프로그램을 만들었습니다. 사실 코딩은 별거 없었는데 졸라맨 만드는게 힘들었어요.(특수문자로 그림을 처음 그려봐서..) 간단한 코드 설명. 졸라맨 이동 코드. 코드 실행 결과. 간단한 코드 설명. 전에 블로그에 작성했던 gotoxy를 이번에 사용했습니다. [프로그래밍/C 언어] - c언어 좌표를 받아 커서이동 gotoxy c언어 좌표를 받아 커서이동 gotoxy 커서이동 함수 gotoxy c언어로 매크로를 만들어보고 싶어서 찾아보다가 알게되었습니다. 이 함수를 이용해서 콘솔에 원하는 좌표에 찍는것이 가능했습니다. (내가 원하는 내용이랑은 살짝 달랐습 intunknown.tistory.com gotoxy로..
C언어 열거형(Enum) 안녕하세요. 이번글은 열거형(Enum)입니다. 간단한 설명. 예제 코드. 코드 실행. 열거형 Enum 간단한 설명. 열거형: 구조체나 공용체와 마찬가지로 자료형을 정의 하는 방법으로 사용됨. 자료형 정의방법: 공용체와 유사하고 정의된 열거형 기반의 변수 선언 방법은 구조체및 공용체와 동일. 열거형은 둘 이상의 연관이 있는 이름을 상수로 선언함으로써 프로그램의 가독성 향상에 목적이 있다. 예제 코드. 열거형 Enum의 예제 코드. #include enum rgb{ Red=1,Green=2,Blue=3 }; void pt(enum rgb col){ switch(col){ case Red: printf("Red\n");break; case Green: printf("Green\n");..
C로 만든 공부 타이머 프로그램 안녕하세요. 이번글은 얼마전에 공부하기 싫어서 만들어본 공부 타이머 프로그램입니다. 코드 대충 기능 확인&실행 추가 코멘트 c언어로 만든 프로그램 코드 프로그램은 c로 만들었으며 아래 사진을 참고해주세요. 코드 파일은 깃허브에서 다운받으실 수 있습니다. (귀찮아서 나중에 링크 올릴게요.) 별거 안넣었는데 그냥 대충 만들다보니 길어졌네요. 공부 타이머 기능확인 1. 파일이름 입력 -> 나중에 얼만큼 공부했는지 확인하기 위해 저장할 파일 이름을 입력해줍니다. 2. command -> 파일 이름을 입력하면 command를 입력할 수 있습니다. 3. start start를 입력하면 현재 시간이 저장됩니다. (공부시작시간) 4. show -> start를 입력한 상태에서 show를..
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 실행 위 코드를 실행했을 때의 (일부) 사진입니..
정보를 출력하고, 권한을 변경하는 프로그램[C, Linux] 안녕하세요. 오늘은 유닉스라는 과목을 들으면서 제가 만든 코드를 올려보려고 합니다. 특정 파일/디렉토리 명을 주면 모든 정보를 출력 권한을 700으로 변경하는 프로그램 코드 코드는 아래와 같습니다. 코드 파일은 깃허브에서 다운받으실 수 있습니다. (귀찮아서 나중에 링크 올릴게요.) 실행 이번에는 이 코드를 컴파일해서 실행해보겠습니다. 아래 사진을 보면 아시겠지만 dirtest라는 폴더를 argument로 주었습니다. 권한을 700으로 설정해주는 코드를 사용해서 argument로 넘겨준 dirtest라는 폴더의 권한이 drwx------이 된 것을 확인할 수 있었습니다. (자세한 건 아랫부분에) 주요 코드 설명 drwxrwx---이런 식으로 되어..
c언어로 만든 선택정렬 알고리즘(Selection Sort). -특정한 일을 수행하기 위한 명령의 유한집합. -만족 조건. 1.입력: 입력하는 데이터가 하나이상이 있어야한다. 2.출력: 적어도 하나의 결과가 있어야한다 3.명확성: 명령이 명확해야한다. 4.유한성: 반드시 종료되어야한다. 5.유효성: 반드시 실행가능해야한다. 선택정렬 알고리즘 -최소정수를 찾을 수 있어야한다. -최소정수와 다른값을 교환한다. -O(n^2) swap(말 그대로 바꿔주는 함수) swap 함수. void SWAP(int *x, int *y) { int z=*x; //z를 선언하고 z에 x가 가르키는 주소의 내용을 넣는다. *x=*y; // x의 주소에 y가 가르키는 주소의 내용을 넣는다. *y=z; //y의 주소에 z의 내용을 ..
c언어 논리오류 (factoria) 논리오류란? 논리 오류는 프로그램을 작성하는 프로그래머가 코드를 작성하면서 실수를 하는 것입니다. 이 경우에는 프로그램 자체에 오류가 있지 않기 때문에 아무런 오류 메시지를 출력하지 않습니다. ex) 실행은 되지만 자신이 의도한대로 실행되지 않는 프로그램이 있습니다. 위에서 간단하게 논리 오류를 설명한 이유는 지금부터 올릴 코드가 논리 오류를 가지고 있기 때문입니다. -아래 링크는 해당 코드가 있는 깃허브의 주소입니다. [factorial] https://github.com/ykarr/C.git 코드 및 풀이. 해당 문제는 factorial을 계산해서 결과를 출력하는 프로그램입니다. 아래 사진을 보면 문제점을 발견할 수 있을겁니다. 무엇이 문제인지 아셨나요? 5fact..
마우스 매크로 만들기[C language] 안녕하세요. 이번에 올릴 내용은 c언어로 만든 마우스 매크로입니다. 어떤 블로그에서 본것을 제가 수정한것입니다. (당시 저한테 필요없는 내용은 없애고 필요한 기능을 추가했습니다.) 좀 찾은지 오래된 자료라서 어디서 찾았는지 기억이 잘 안나네요. (나중에 찾아서 수정해야겠어요.) 일단 기능은 말 그대로 마우스 매크로입니다. 매크로란? 어떤 작업을 수행하기 위해 사용자가 일일이 명령을 입력하지 않고 특정한 키를 눌러 자동으로 어떤 작업을 수행되게 하는 것. 조작 순서를 기록하여 자동으로 실행시키는 기능. C language code 아래 파일은 c언어 코드 파일입니다. 다른프로그램 위에 사용할때는 관리자모드로 사용하면 될겁니다. 실행했을때는 아래 사진처럼 나옵니다...