본문 바로가기
728x90

전체 글549

c언어 리눅스(linux) shared memory 간단 예제 shm.c에서 shared memory를 생성하고 값을 넣는다. client.c에서 shm에 있는 데이터를 출력한다. ​ shm.c #include #include #include #include typedef struct { int a; char b[10]; }Form; // shm.c int main() { int shmid; void *shared_memory = (void *)0; Form* form; /* 공유메모리 공간을 만든다. */ shmid = shmget((key_t)1234, sizeof(form), 0666|IPC_CREAT); if (shmid == -1) { perror("shmget failed : "); exit(0); } /* 공유메모리를 사용하기 위해 프로세스메모리에 붙인.. 2023. 1. 8.
c언어 리눅스(linux) fork를 이용한 프로세스 생성 예제 #include #include //#include //#include #include #include #include // 자식프로세스 fork할 용도 int main() { pid_t pid; int x = 0; pid = fork(); // 부모에게는 자식의 pid를 받아내고 자식에게는 0을 준다. -> 자식 프로세스는 부모를 복제한다. if(pid > 0) { x = 1; printf("부모 pid : %ld, x : %d, pid : %d\n", (long)getpid(), x, pid); } else if(pid == 0){ x = 2; printf("자식 pid : %ld, x : %d, pid : %d\n", (long)getpid(), x, pid); } return 0 ; } 2023. 1. 8.
c언어 리눅스(linux) TCP/IP 예제 클라이언트에서 입력값을 받아와 서버에 전달해준다(구조체) ​ servertcp.c #include #include #include #include #include #include #include #define PORT 9999 typedef struct { int a; char b[10]; }Form; // servertcp.c int main(void){ int sock, client_sock; struct sockaddr_in addr, client_addr; int len, addr_len, recv_len; Form form; if((sock = socket(AF_INET, SOCK_STREAM, 0)) SOCK_DGRAM { perror("socket "); return 1; } memset(&.. 2023. 1. 8.
쉘 스크립트(shell script) - 업뎃ing 만들고 권한 줘야함 chmod +x *.sh --시작 #!/bin/bash ---실행 sh *.sh ./*.sh bash *.sh 2023. 1. 8.
c언어 리눅스(linux) UDP 예제 server.c #include #include #include #include #include #include #include #define PORT 9999 typedef struct { int a; char b[10]; }Form; //server.c int main(void){ int sock; struct sockaddr_in addr, client_addr; int addr_len; Form formdata; // 주고 받을 데이터 if((sock = socket(AF_INET, SOCK_DGRAM, 0)) 2023. 1. 8.
c언어 파일입출력 중 읽기 fp가 포함된 부분만 보면된다. int main() { FILE *fp = fopen("파일명.dat","r"); // 옵션 설정가능 //fgets(buffer, sizeof(buffer), fp); // 한줄씩 읽어온다. while(fgets(buffer, sizeof(buffer), fp)) // 한줄씩 읽어온다. { memcpy(form.codename, strtok(buffer, "|"), sizeof(form.codename)); // strtok으로 구분해서 따로 저장 memcpy(form.dataid, strtok(NULL, "|"), sizeof(form.dataid)); if(atoi(form.dataid) == 20093) break; } fclose(fp); // 파일 포인터 닫기 r.. 2023. 1. 8.
c와 mariadb 연결하는 방법 및 예제 2 - select, insert, delete ++++ mysql_free_result(sql_result) 을 마지막에 쓰자 CREATE TABLE ANIMAL ( id INT PRIMARY KEY, name VARCHAR(20) ); ​ main.c #include "chun.h" void myselect(MYSQL *conn_ptr, char* query); void myinsert(MYSQL *conn_ptr, char* query); void mydelete(MYSQL *conn_ptr, char* query); int main(int argc, char** argv) { MYSQL *conn_ptr; // db connect conn_ptr = db_init("IP", "ID", "PWD", "DATABASE"); char query[10.. 2023. 1. 8.
c와 mariadb 연결하는 방법 및 예제 1 - db connect중심 db설치나 라이브러리화하는 부분은 빠져있다..내가 안했기에.. chun.h 헤더파일 #include #include #include #include "mysql.h" #define BUF_LEN 2048 MYSQL *conn_ptr; MYSQL_RES *res_ptr; MYSQL_ROW sqlrow; MYSQL* db_init(char *ip, char *user, char *pw, char *db); typedef struct { int id; char name[20+1]; }Animal; db_conn.c -> db에 접속할 때 사용하는 함수 mysql_real_connect #include "chun.h" MYSQL *db_init(char *ip, char *user, char *pw, char .. 2023. 1. 8.
c와 mariadb 연결하는 방법 및 예제 0 - 간단한 Makefile 실행이 안될때가 있는데 tab으로 구분이 안되어 있으면 안된다. 에러가 날때 tab으로 구분 되어있나 확인해보자 CC=gcc TARGET=a.out INCLUDE = -I/usr/include/mysql -I/tqtlhj/chun/chun.h LIB = -lmysqlclient OBJECT=db_conn.o main.o $(TARGET) : $(OBJECT) $(CC) -o $(TARGET) db_conn.o main.o $(INCLUDE) $(LIB) db_conn.o : db_conn.c $(CC) -c -o db_conn.o db_conn.c $(INCLUDE) main.o : main.c $(CC) -c -o main.o main.c $(INCLUDE) clean: rm $(OBJECT) $(TA.. 2023. 1. 8.
linux환경 vi편집기 명령어 gg=G -> 자동줄맞춤 %s/단어/단어/g -> 단어바꾸기 shift+~ -> 대소문자변경 ctrl+r 은 취소하기(u와 번갈아 사용해바라) 2023. 1. 8.
728x90