Ubuntu GCC 보안 옵션

기준 ubuntu 16.04.2 LTS (GNU/Linux 4.4.0-77-generic x86_64) gcc 5.4.0 20160609 gcc랑 관련없는 건데 이 운영체제에서 계속 ASLR을 끄고 싶어 echo "kernel.randomize_va_space=0" > /etc/sysctl.d/01-disable-aslr.conf 32비트로 컴파일하고 싶어 -m32 -m32 옵션을 줬는데 이상해 sudo apt install gcc-multilib [Read More]

PowerShell에서 Bash 같은 alias 쓰기

bash에는 alias가 있다... 이렇게 쓸 수 있다... alias ub='docker run --rm ubuntu $@' 파워쉘에도 Set-Alias가 있지만... 대신 function 기능을 쓰는게 유익한 것 같다. [Read More]

fork - exec 대신 posix_spawn 쓰기

fork - exec 조합으로 외부 프로그램을 실행하는 방법은 별로 권장하지 않는다고 한다. 대신 posix_spawn 함수를 추천하는데... 예전에 system 함수 대신 fork - exec를 쓴다고 한 글 system 대 [Read More]

C++ 멀티스레드 무한루프 끝내기

까먹을 예정이라서 저장 만약 bool을 이용해서 종료를 해왔다면... 예를 들어 이렇게 써왔다면... #include <thread> void func( bool& run ) { while ( run ) { // ... } } int main() { bool run{ true }; std::thread [Read More]

꼬리재귀로 이항계수 구현하기

\[ {n\choose k} = \frac{n!}{k!(n-k)!} \] 이항계수의 공식. 얼추 코드로 옮기면 아래처럼 된다. \((0 \le k \le n)\) int f(int n, int k) { return factorial(n) / (factorial(k) * factorial(n - k)) } 일단 재귀로 바꿔보자... f(n, 0)은... \[ f(n,0) [Read More]

re2c랑 bison으로 파서 만들기

파서를 만들 때, lex로는 토큰을 만들고, yacc로는 토큰의 조합에 따른 행동을 만든다. 이 글에서 re2c는 lex에 대응하고, bison은 yacc에 대 [Read More]

system 대신 fork - exec 쓰기

fork - exec 대신 posix_spawn 쓰기 c언어에서 기존 프로세스를 종료시키지 않고 외부 명령어를 실행하고 싶을 때가 있다. system 함수는 보안상 문제가 많아서 안쓰는 게 좋다고 하고... 그 [Read More]

posix aio socket server 예제

열심히 코드를 작성하면서 검색하는데 aio는 소켓을 지원하지 않는다는 글이 있어서 깜짝 놀랐다 ㄷㄷ http://www.clien.net/cs2/bbs/board.php?bo_table=kin&wr_id=2298319 댓글 보니까 된다고... 실제로도 되서 다행이다. 비동기/ [Read More]

c socket 예제

여러 예제를 보고 따라하면서 많은 이해가 됐다. sockaddr 구조체와 sockaddr_in 구조체는 크기가 같다는 것이 인상깊었다. 아래는 작성한 예제 #include <stdio.h>#include <unistd.h>#include <sys/wait.h>#include <sys/types.h>#include <sys/socket.h>#include <arpa/inet.h>#include <string.h> int main () { int ret; pid_t pid = fork(); [Read More]