Coding/Linux (Ubuntu) 11

File System 파일 시스템 함수 실습

특정 파일/디렉토리 명을 주면 모든 정보를 출력하고, 권한을 700으로 변경하는 프로그램을 작성 #include #include #include int main(int argc, char *argv[]){ struct stat buf; stat(argv[1],&buf); if(S_ISREG(buf.st_mode)) printf("Is file =Y\n"); else printf("Is file =N\n"); if(S_ISDIR(buf.st_mode)) printf("Is DIR =Y\n"); else printf("Is DIR =N\n"); printf("Inod=%d\n",(int)buf.st_ino); printf("mode=%o\n",(unsigned int)buf.st_mode); printf("..

File I/O 고수준 파일 입출력 함수 실습

- /tmp/num.txt 에서 숫자를 읽어서 4의 배수인 경우 four.txt 파일로 저장하고 총 개수를 출력 - num.txt 파일 이름은 argument로 받는다 #include int main(int argc,char *argv[]){ FILE *rfp, *wfp; //파일 입출력을 위해 선언하고 int i=0,num; //숫자를 넣고 if((rfp=fopen(argv[1],"r"))==NULL){ perror("error"); exit(1); } if((wfp=fopen("four.txt","w"))==NULL){ perror("error"); exit(1); } while(fscanf(rfp,"%d",&num)!=EOF){//while문을 돌린다. if(num%4==0){ fprintf(wfp..

File I/O 저수준 파일 입출력 함수 실습

Ex1) 파일을 복사하는 mycp 프로그램 작성 생성 : mycp. c, a.txt 컴파일 : gcc -o mycp mycp.c 실행 : ./mycp a.txt b.txt mycp.c #include #include #include int main(int argc,char *argv[]){ FILE *fp = fopen(argv[1],"r"); FILE *nfp = fopen(argv[2],"w"); if(fp==NULL || nfp==NULL){ perror("fopen"); return -1;} char buf[4096]; int ret=0; while(ret = fread(buf, sizeof(char), sizeof(buf),fp)) fwrite(buf, 1, ret, nfp); fclose(fp..

GNU DEBUGGER (GDB) 사용법, 예제

gdb의 기본 사용법 gcc컴파일 시 -g 옵션 추가 -O옵션 : Optimizer 최적화하면서 코드를 변경시키기 때문에 제거 컴파일 gcc -g -o ex1 ex1.c gdb기본사용법(중요한거 위주로 작성) gdb 종료 : q / ctrl+d gdb 실행 gdb a.out 매개변수가 있는 경우 gdb --args a.out 1 2 3 4 소스 찾아가기 (list) l main 함수를 기점으로 소스의 내용이 출력된다 l 10 10 행 주변의 소스가 출력 l func func 함수의 소스를 출력 중단점 사용하기 (breakpoint) b func func 함수에 브레이크 포인트 설정 b 10 10행에 브레이크 포인트 설정 중단점 삭제하기 (clear, delete) cl func func 함수의 시작 부분..

winscp ubuntu window error:1

winscp사용시 ubuntu 에서 winscp로는 파일복사가 되는데winscp에서 ubuntu로는 파일 복사가 안되는 문제점이 발생했다.(에러코드1)이유는 ubuntu 에 생성한 폴더의 권한설정이 되어있지 않기 때문이다. 설정하길 원하는 곳의 디렉토리에 이동해서 pwd를 통해 경로를 확인하고 sudo chown 계정:계정 /권한설정할 폴더/ -R이 명령을 쳐준다.chown : 소유자 변경 -R옵션은 하위폴더들에게도 동일한 옵션을 부여한다. 이제 양쪽으로 모두 파일이동이 가능해졌다. Uploaded by Notion2Tistory v1.1.0

socket 실습 [TCP,UDP Server & Client]

TCP 서버 & 클라이언트 작성한 파일 ex11-7s.c , ex11-7c.c ex11-7s.c : TCP서버 #include #include #include #include #include #include #include #include #include #include #define PORTNUM 9000 int main() { char buf[256]; struct sockaddr_in sin, cli; int sd, ns, clientlen = sizeof(cli); if((sd=socket(AF_INET, SOCK_STREAM, 0)) == -1) { perror("socket"); exit(1); } int optvalue = 1; setsockopt(sd, SOL_SOCKET, SO_REUSE..

pthread 실습

ex1: 구구단을 출력하는 threaded program (pthread_join) ex1) • 구구단을 출력하는 threaded program 작성 • thread function이 한번 불리면 한 단을 출력 • 한번에 한단씩 섞이지 않도록 출력 (pthread_join 사용) ex1.c 코드 코드 파일 만들기 vi ex1.c 저장 : esc + : + wq(저장 후 나가기) + enter 컴파일 , 실행 gcc ex1.c -lpthread ./a.out [실행 결과] ex2: Parameter로 thread의 수를 입력받고, 해당 수만큼 thread를 생성 ex2) • Parameter로 thread의 수를 입력받고, 해당 수만큼 thread를 생성 • 각 thread는 생성된 순서의 번호와 자기 t..

process 실습

ex1: Child process와 기존의 gugudan 프로그램을 이용하여 구구단을 출력하는 프로그램 • Child process와 기존의 gugudan 프로그램을 이용하여 구구단을 출력하는 프로그램을 작성 • Child process는 gugudan 프로그램을 실행 (exec 함수 사용) • Child process가 출력을 완료할 때까지 parent process는 대기 ./a.out Child Process - My PID:15696, My Parent's PID:15695 2 x 0 = 0 2i x 1 = 2 ... iParent process - My PID:15695, My Parent's PID:15602, My Child's PID:15696 작성한 파일 : gugu.c, main.c i..