본문 바로가기
728x90

개발 업무(코딩)-개발자였을때 썼던..79

나만의 로그파일 만들기(LOG) 가변인자로 만든 로그파일 소스이다. 수정해서 더 다듬어도 될꺼같다. va_list를 사용하려면 #include 를 추가해야한다. 로그파일을 만든이유는 데몬프로세스가 죽는데 이유를 모르겠어서 원인을 찾기 위함이다. ​ 사용법 ex) MYLOG("[%d] failed why? [%s]\n", __LINE__, mysql_error(pConn) ); void MYLOG(char *msg, ...) { FILE *fp; fp = fopen("/home/changjo/my_log", "a"); time_t t = time(NULL); struct tm tm = *localtime(&t); char buffer[1024]; memset(buffer, 0x00, sizeof(buffer)); va_list ap; v.. 2023. 1. 8.
CREON PLUS를 이용한 주식 일자별 시세 수집(python) 일자별 시세를 가져와야하는데 파일형태로 받아서 DB에 직접 넣는 형태를 취하고 싶었다. 데이터를 가져올 수 있는 증권사 api를 찾다가 대신증권 CREON PLUS를 찾았다. https://androman.tistory.com/78 위의 링크는 가입부터 간단한 소스 돌리기 예제가 있는 링크이다. 키움은 https://wikidocs.net/6656 ​ http://money2.creontrade.com/e5/mboard/ptype_basic/plusPDS/DW_Basic_Read.aspx?boardseq=299&seq=49&page=1&searchString=%ec%b0%a8%ed%8a%b8&prd=&lang=&p=8833&v=8639&m=9505 위의 링크는 대신증권에서 제공하는 샘플들이 있는 사이트이.. 2023. 1. 8.
LOAD DATA 할때 원하는 테이블의 column만 넣어주는 방법 LOAD DATA LOCAL INFILE 'path/005930.txt' INTO TABLE CDB.STOCK FIELDS TERMINATED BY '|'(TRADE_DATE, CODE, OPEN_PRICE, HIGH_PRICE, LOW_PRICE, CLOSE_PRICE, VOLUME); TERMINATED BY '|' 뒤에가 원하는 column들이다. 저부분이 없다면 앞에서부터 채워져서 데이터가 들어간다. 2023. 1. 8.
CURL 헤드 따로 주는 법 struct curl_slist *list = NULL 부분을 주목하자!!!! struct MemoryStruct { char *memory; size_t size; }; static size_t WriteMemoryCallback(void *contents, size_t size, size_t nmemb, void *userp) { size_t realsize = size * nmemb; struct MemoryStruct *mem = (struct MemoryStruct *)userp; mem->memory = realloc(mem->memory, mem->size + realsize + 1); if (mem->memory == NULL) { /* out of memory! */ printf("not.. 2023. 1. 8.
CURL 속도 문제 해결 https://m.blog.naver.com/PostView.nhn?blogId=babyjjan&logNo=220475927024&proxyReferer=https%3A%2F%2Fwww.google.com%2F ​ 일단 위의 링크를 읽어보자 ​ https://blog.lael.be/post/154 ping 확인법이 적혀있다. 나의 환경은 KT DNS 서버였고 0.xx ms 시간를 보여줬다. 즉, DNS 에는 문제가 없었다. 제일 첫번째 링크를 읽어보면 set_opt를 주는데 내 소스에서는 curl_easy_setopt를 사용하기 때문에 소스코드에 curl_easy_setopt(curl_handle, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4 ); 를 추가해줬더니 curl 한라인당 .. 2023. 1. 8.
UNIX C, MariaDB PROCEDURE(프로시저) 2탄 db_conn.c // 여기서 주목해야할 점은 mysql_real_connect에서 마지막 CLIENT_MULTI_STATEMENTS 부분이다. 아래 링크를 읽어보면 알겠지만 두가지 옵션 중 젤 상위옵션 같다.(쓰는 용도가 다르다면 할말없다.) MYSQL *db_init(char *ip, char *user, char *pw, char *db) { conn_ptr = mysql_init(NULL); if(!conn_ptr) { printf("error"); exit(0); } conn_ptr = mysql_real_connect(conn_ptr, ip, user, pw, db, 50000, NULL, CLIENT_MULTI_STATEMENTS); if(!conn_ptr) { printf("cannot c.. 2023. 1. 8.
UNIX C, MariaDB PROCEDURE(프로시저) 1탄 처음 접해본...하지만 많은 업무에 사용한다고 해서 공부하고 있다. ###########프로시저 생성########### #DELIMITER에서 오류가 발생하는데..아직 이유를 모르겠다. create자체만은 잘됨 DELIMITER $$ CREATE PROCEDURE PR1() BEGIN SELECT * FROM MYBATCH; END$$ DELIMITER; ##만들어진 프로시저 호출 call PR1(); ##프로시저가 저장되어있는 테이블 SELECT * FROM INFORMATION_SCHEMA.ROUTINES; ##프로시저 제거 DROP PROCEDURE pr1; #개별로 볼수있다고 넷상에 있는 명령어인데 잘안된다.. #sp_helptext PR1(); 2023. 1. 8.
mysql.h가 없을때 + mysqlclient 라이브러리가 없을때 yum install mysql-devel 으로 설치하자 ​ 라이브러리는 내가 설치할 때 /usr/lib64/mysql/libmysqlclient.so 에 설치가 되었다. Makefile 혹은 컴파일할때 라이브러리 경로를 유의해서 설정해주면된다. 2023. 1. 8.
DB 유저 생성 및 권한부여 SELECT * FROM user; mysql db에서 접근할 수 있는 host와 user 정보를 확인 할 수 있다. CREATE USER 'tqtdb'@'localhost' identified by 'tqtdb1!'; CREATE USER 'tqtdb'@'112.16.71.%' identified by 'tqtdb1!'; // 특정아이피만..192.11.11.18로 해도됨 DROP USER 'tqtdb'@'localhost'; localhost 접근 권한만 주어진 유저 tqtdb을 생성하고 패스워드는 tqtdb1! 이다. (localhost 대신에 %를 넣으면 외부에서 접근가능) drop할때 저런식으로 다 붙여줘야 된다. SELECT * FROM db; 으로 유저별로 권한 확인 가능. 위의 user테이.. 2023. 1. 8.
리눅스 소스&디렉토리 백업 쉘 # 2020.03.19 Source Backup Shell #! /bin/bash if [ $# = 0 ] then echo backup shell echo ex} backup.sh exam.c echo ex} backup.sh exam else echo backupstart $1 if [ $1 = ~ ] # home check then echo dont use ~ exit fi if [ -d $1 ] # dir check then cp -rp $1 $1.`date +%Y%m%d` tar -cvf $1.`date +%Y%m%d`.tar $1.`date +%Y%m%d` rm -r $1.`date +%Y%m%d` else # file cp -p $1 $1.`date +%Y%m%d` fi fi 전역에서 사용하.. 2023. 1. 8.
728x90