본문 바로가기

Linux/C

Call by Reference ===================================================================== -- swap2.c -- #include int main() { int i = 3; int j = 10; { int i = 5; int j = 20; } printf("i = %d, j = %d \n", i , j); return 0; } -- swap2.c -- -- 실행결과 -- # gcc -S -o swap2-att.s swap2.c -- 실행결과 -- -- 어셈블리코드 -- .LC0: .string"i = %d, j = %d \n" .globl main main: pushl%ebp movl%esp, %ebp subl$28, %esp movl$3, -16(%ebp) movl$.. 더보기
[linux] 포인터#3 ===================================================================== LAB> pointer 예제 9 - strlen 함수를 구현해보자. 함수 원형 #include size_t strlen(const char *s); 사용자 정의함수 : char *Strrchr(const char *s, int c); -- strlentest.c -- #include #include int main() { char message[] = "Hello World"; printf("message length = %d \n", strlen(message)); return 0; } -- strlentest.c -- -- 실행결과 -- message length = 11 --.. 더보기
[linux] 포인터#2 ===================================================================== LAB> pointer 예제 5 -- point5.c -- #include int main() { char os[] = "Linux, Windows, Unix"; char *p; p = os; // p --> os printf(os); putchar('\n'); printf(p); putchar('\n'); printf(p+7); putchar('\n'); return 0; } -- point5.c -- ===================================================================== ==============================.. 더보기
[linux] 포인터#1 o 포인터 포인터 : 메모리의 주소를 의미한다. 포인터 변수 : 메모리 주소를 저장하는 변수를 의미한다. 포인터 변수 크기 : 4byte 크기를 가진다. 포인터 변수 선언 : 데이터형 *변수명 선언한다. e.g. int *p; 포인터 증가 : 포인터를 데이터형 만큼 증가한다. 포인터 감소 : 포인터를 데이터형 만큼 감소한다. ===================================================================== LAB> 포인터 예제1 -- point1.c -- /* * fname : point1.c */ #include int main() { int i; int *p; i = 10; p = &i; printf("i = %d \n", i); printf("p = %p .. 더보기
[linux] 명령행 인자를 이용한 프로그램 실행 ===================================================================== LAB> c 언어에서 명령행 인자를 이용한 프로그램 실행 # vi argc.c -- argc.c -- #include #include int main(int argc, char *argv[]) { char cmd[100]; // 디버그 모드이면 argc 변수의 값을 출력해라. #ifdef DEBUG printf("argc = %d \n", argc); #endif if(argc != 2) { fprintf(stderr, "Usage : %s username\n", argv[0]); exit(1); } // 명령어 문자열을 완성한다. // e.g. useradd linux sprin.. 더보기
[linux] 반복문( while ) ===================================================================== c 언어에서 반복문 for 문 while 문 do ~ while 문 until 문 X ===================================================================== ===================================================================== LAB> while 문 예제 1 # vi while1.c -- while1.c -- #include // printf, scanf, fflush, putchar #include // sleep int main() { int i; int j; print.. 더보기
[linux] switch case 문 ===================================================================== LAB> switch ~ case 예제 1 # vi switch1.c -- switch1.c -- /* * file name : switch1.c */ #include int main() { int i ; printf("번호를 입력하세요 : "); scanf("%d", &i); switch(i) { case 1 : printf("i = 1"); break; case 2 : printf("i = 2"); break; case 3 : printf("i = 3"); break; } putchar('\n'); // 문자 하나를 출력하는 함수 return 0; } -- switch1.c -.. 더보기
[linux] 사용자 정보 구하기 ============================================================================== LAB> 사용자의 정보를 구하는 프로그래밍을 해보자. # vi struct.c -- struct.c -- #include struct test { int i; int j; }; int main() { struct test abc; abc.i = 10; abc.j = 20; printf("abc.i = %d, abc.j = %d \n", abc.i, abc.j); return 0; } -- struct.c -- # gcc -o struct struct.c # ./struct abc.i = 10, abc.j = 20 # cp struct.c struct2.c # vi .. 더보기
[linux] gdb 사용하기 ===========================================================================LAB> 개발환경에서 gdb 디버거를 사용해보자. #vi gdbtest.c#includeint main(){int i, j; // 변수 i, j를 선언 char buf[1024] = "Hello C"; i = 10;j = 20; printf("buf = %s \n", buf);printf("i = %d, j = %d \n", i, j); return 0;}-----------------------------------사용법: x/FMT 메모리주소 help x 로 확인한다. FMT는 반복회수,포맷,출력단위 포맷: x : 16진수 d : 10진수 c : ASCII 문자로 표시.. 더보기
[linux] 라이브러리 사용하기 주제 : 리눅스에서 라이브러리 사용하기학습목표 : 리눅스에서 사용하는 라이브러리를 만들 수 있고 라이브러리가 어떤 건지 알 수 있으면 좋겠다.참고 사이트 : http://www.joinc.co.kr/modules/moniwiki/wiki.php/Site/C/Documents/Make_Libraryhttp://www.hanbit.co.kr/network/view.html?bi_id=1013 라이브러리 : 특정한 코드를 포함하고 있는 컴파일된 파일. 오브젝트 파일들을 모아 놓은 것.o 라이브러리의 종류- 정적라이브러리 : 컴파일시에 적재된다.- 공유라이브러리 : 프로그램이 시작될 때 적재된다. (런타임) ---> 윈도우에서 dll- 동적라이브러리 : 프로그램 시작중 특정한 때에 적재된다. ** windows.. 더보기
[VS] 차량번호 분류 #include #include #include void car_kind(char *s); void use(char *ss); int main(void) { char num[20]; char aa[3], bb[3]; printf("차량번호입력: "); scanf("%s", num); memmove(aa,num,2); //aa에다가 num의 2byte만큼 값을 복사 memmove(bb,num+2,2); aa[2]='\0'; bb[2]='\0'; car_kind(aa); use(bb); return 0; } void car_kind(char *ss) { int s; s=atoi(ss);//문자열을 정수로 변환 if(s 더보기
[VS] 영문한글 글자수 세기 더보기
[VS] 네모찍기 더보기