본문 바로가기
728x90

전체 글550

execl 로 프로세스 실행시키기 --간략한 설명 -- 프로세스를 실행시키고 자기자신은 없어진다고 보면된다. a라는 exe파일과 ex.c를 통해만든 a.out이라는 exe파일이 있고 a.out 파일을 통해 a라는 파일을 실행시키는 예제이다. #include #include int main() { int i = 0; while(1) { printf("-1- %d\n", getpid()); execl("/home/usr/chun/double/a", "a", NULL); printf("-2-\n"); /* 안나옴 */ if((i++) == 2) /* 타지도 못함 */ break; } } 경로에 무엇이 있는지 확인용 ​ 실행시키고 나면.. ​ ​ -----파라미터 넘기기 char 형태로 넘겨야함 2023. 1. 9.
c-java(클라) tr전문 테스트용 샘플 /** * Handles requests for the application home page. */ @Controller public class HomeController { private static final Logger logger = LoggerFactory.getLogger(HomeController.class); /** * Simply selects the home view to render by returning its name. * * @throws IOException * @throws UnknownHostException */ @RequestMapping(value = "/", method = RequestMethod.GET) public String home(Locale locale.. 2023. 1. 9.
코스콤 배치 작업 내역 1. 1월1일에 주말을 제외한 모든 날짜 인서트 - mariadb로 구현을 했다. mysql에서는 1년치 데이터를 가져오는 것이 존재했었는데..mariadb는 못찾았다. 1. 1월1일 비교 SELECT CASE DATE_FORMAT(NOW(), '%m%d') WHEN '0101' THEN 1 ELSE 0 END , DATE_FORMAT(NOW(), '%Y%m%d'); 2. 1~365번 돌면서 주말제외 날짜를 인서트한다. DATE_ADD로 날짜를 더해나갔다. INSERT INTO 테이블( WORKDATE ) (SELECT DATE_FORMAT(DATE_ADD(NOW(), INTERVAL +%d DAY), '%Y%m%d') FROM DUAL WHERE WEEKDAY(DATE_FORMAT(DATE_ADD(NO.. 2023. 1. 9.
MYSQL TRIGGER(트리거) 테이블에 변화가 올때마다 기록을 남기는게 필요했다. TC5002MT는 원본테이블 TC5002TG는 트리거용 테이블(기록용) 두 테이블의 차이는 TC5002TG에 seq라는 AUTO_INCREMENT가 있다는 점과 함수명을 남기기위한 FUNC가 있다는 점이 차이다. (PK차이) ​ 데이터내용을 전부 추가하고 싶으면 INSERT에 다 넣어주면된다. 샘플 코드만 있으니 자세한건 다른 블로그 참고바람 ​ BEFORE 와 AFTER, OLD와 NEW, UPDATE INSERT DELETE 따로 해줘야한다는 점. ​ 짜증나는건 트리거 잘못만들면 기존에 작동했던 기능들이 안될수도 있다.(기능이 안된다는 것은 기존의 테이블에 연관된 select이나 insert등의 기능이다.) DELIMITER $$ CREATE TRI.. 2023. 1. 9.
C언어 HMAC SHA256 샘플코드(openssl) 참고한 사이트 를 보면 1번에선 여러가지 언어로 샘플코드들이 존재했다. 그러나 C로 짜여진 소스는 없었다. shell로 openssl을 불러서 하는 것일 이용해 popen을 사용해서 만들었다. 동시에 popen을 했을 때 괜찮을까에 대한 문제로 소스를 짜기 시작했다. echo -n $MESSAGE | openssl dgst -sha256 -hmac $SECRET -binary | base64 에서 -binary와 base64를 지웠을 때 데이터가 일정부분 일치한 것을 확인하고 구현할 수 있겠다는 생각이 들었다. 순서는 hmac-sha256 -> hex -> binary -> base64 이다.(ver1) ​ ver2는 hmac-sha256 -> base64 이다. for구문의 행위가 bin -> hex였.. 2023. 1. 9.
c-json 라이브러리에 대한 고찰과 소수점 짜르는 소스 c-json을 사용하면서 문제가 꽤 있었다.(json_object을 이용한 라이브러리) ​ 1. 동적할당이라는 점 쓰는건 자유지만 free는 자유가 아니지...제일 짜증나는 상황이 발생한다. ​ 2. 뒤에 tab이 들어가고 공백이 생긴다 ​ 3. 내가 원하는 대로 소수점 짜르기가 안된다. 난 소수점 2자리까지만 표시하고 싶은데 안되더라...내가 못찾아서 인가? ​ 4. 익숙하지 않아서 인지 순서대로 무언가의 데이터 넣기가 생각보단...사람차이.. ​ 5. yum install 을 해야한다는 점이다. 하면되지 라고 생각할 수 있지만 신경써야할 부분이 하나 더 생긴다. ​ 2번과 3번의 이유로 2가지 종류의 소스를 짰고 그중 하나는 이미 게시물을 올렸고 소수점짜르는 소스는 이 글에 같이 첨부한다. -----.. 2023. 1. 9.
C언어 HMAC SHA256 샘플코드(openssl dgst popen) 수많은 HMAC SHA256 예제가 있었지만 C언어로 짜여진 소스를 찾긴 어려웠다. openssl을 사용한 소스 ​ hmac sha256 using c language ..example /*******************************************************************/ /* HMAC_SHA256 FUNCTION */ /* phskey : 해쉬키, pmessage : 암호화할 데이터, psecret : 암호화키 */ /*******************************************************************/ int HMAC_SHA256(char* phskey, char* pmessage, char* secret) { FILE *fp;.. 2023. 1. 9.
C-JSON EXAMPLE 예제 2 - ARRAY json에서 array를 만들기위해서 짠 샘플 소스이다. memory leak이 있는 지 확인 하기 위해서 while문을 돌렸다. #include #include #include #include int main() { while(1) { json_object *myobj, *dataobj, *headerobj; // 메모리 할당 myobj = json_object_new_object(); dataobj = json_object_new_object(); headerobj = json_object_new_object(); char ztemp[1024]; memset(ztemp, 0x00, sizeof(ztemp)); memcpy(ztemp, "test", sizeof(ztemp)); // create a j.. 2023. 1. 9.
C-JSON EXAMPLE 예제 #include<json/json.h> https://stockdragon.tistory.com/90 설치는 여기를 참고 윗부분은 json형식을 만드는 법이고 밑은 json형식을 파싱하는 법이다. json_object_object_get은 deprecated되서 사용불가이다. 대신에 json_object_object_get_ex를 사용 #include #include #include #include int main() { char data[1024] = "{\n \"dataHeader\" : {\n \"udId\" : \"UDID\",\n \"subChannel\" : \"subChannel\",\n \"deviceModel\" : \"Android\",\n \"deviceOs\" : \"Android\",\n \"carrier\" : \"K.. 2023. 1. 9.
json 불필요한 공백,탭,개행 제거 HMAC SHA256을 접했다. json형태의 데이터와 특정한 키를 가지고 HASHKEY를 만들어주는데 json형태의 데이터가 스페이스 한번이라도 들어가면 다른 hashkey를 내뱉는다. 값이 일정치 않아서 만들었다. 만들고 나니 사용할 일이 별로 없네.. 0x20 : space 0x0A : LF(개행) 0x09 : tab int main() { char *databody = "{\n \"dataHeader\" : {\n \"udId\" : \"UDID\",\n }\n}"; char* shift_data = malloc(sizeof(char) * strlen(databody)); shift_json(shift_data, databody); printf("[%s]\n", shift_data); free(s.. 2023. 1. 9.
728x90