본문 바로가기

프로그래밍68

[ubuntu][ulimit] bash: ulimit: open files: cannot modify limit: Operation not permitted $ ulimit -n 10000 bash: ulimit: open files: 제한을 수정할 수 없음: 명령을 허용하지 않음 bash: ulimit: open files: cannot modify limit: Operation not permitted ubuntu 에서 root가 아닌 사용자 계정으로 ulimit -n open files 변경이 안되는 문제 검색을 해보면 sudo vi /etc/security/limits.conf 에 아래 내용을 추가하라고 나오지만, 설정 후 재부팅해도 안되는 현상 확인 ohdumak soft nofile 65534 ohdumak hard nofile 65534 ohdumak soft nproc 65534 ohdumak hard nproc 65534 [해결 방법] I w.. 2022. 5. 13.
[C++][GDB] std::string 에 계속 append() 데이터를 넣을 경우 signal SIGABRT, Aborted. string 에 계속 데이터를 넣을 경우 signal SIGABRT, Aborted . 발생 gdb #0 __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:51 #1 0x00007f4b9a9fc9fb in __GI_abort () at abort.c:100 #2 0x00007f4b9b051957 in ?? () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6 #3 0x00007f4b9b057ab6 in ?? () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6 #4 0x00007f4b9b057af1 in std::terminate() () from /usr/lib/x8.. 2022. 5. 11.
[Ubuntu][GDB] Cannot access memory at address 발생하지 않는 방법 gdb, coredumpctl gdb 사용 시 Cannot access memory at address 발생 BFD: warning: /var/tmp/coredump-kvq8Zt is truncated: expected core file size >= 4052951040, found: 2147483648 coredump.conf 수정 $ sudo vi /etc/systemd/coredump.conf [Coredump] ProcessSizeMax=4G ExternalSizeMax=4G JournalSizeMax=4G $ systemctl daemon-reload 이후 core발생 시 다시 coredumpctl gdb 구동하면 gdb 정상 에러 확인 가능 https://stackoverflow.com/que.. 2022. 5. 11.
[정보] C++ SIGCHLD, waitpid()에 관해서 안녕하세요. 오두막입니다. 프로세스 종료 및 재구동 등을 테스트하다가 알게된 정보에 대해서 전달드립니다. 부모프로세스에서 자식프로세스를 여러개 만들어서 처리를 하다가 자식프로세스가 종료되면 부모프로세스에 SIGCHLD가 전달됩니다. 그래서 SIGCHLD 시그널을 받고 처리를 하게 되는데, 자식프로세스가 여러개이고 여러 자식프로세스가 동시에 종료가 되면 종료된 수만큼 SIGCHLD가 발생하지 않는걸 알게됐습니다. 검색을 해보니, SIGCHLD의 경우 여러 번 발생하면 하나로 축소되는 신호이므로 waitpid()를 여러번 수행 필요하다는걸 알게됐습니다. 그래서 기존에는 한번에 SIGNAL마다 wait()함수를 사용하여 한번씩 처리했지만, 아래 코드와 같이 waitpid() 함수를 사용하여 처리하도록 변경했습.. 2021. 11. 26.
[C 빌드 에러] error: narrowing conversion of ‘’ from ‘int’ to ‘char’ inside { } [-Wnarrowing] [코드] char code1[4] = {0xa0, 0xa1, 0xa2 ,0xa3}; char code2[1] = {-100}; [에러] error: narrowing conversion of ‘162’ from ‘int’ to ‘char’ inside { } [-Wnarrowing] [해결방법] unsigned char code[4]= {0xa0, 0xa1, 0xa2 ,0xa3}; signed char code2[1] = {-100}; 2020. 11. 10.
제9장 프로세스 관계 9.1 소개 모든 프로세스에는 부모프로세스가 있다. 자식이 종료되면 그 사실이 부모에게 통지되며, 부모는 자식의 종료 상태를 회수할 수 있다. 이번 장에서는 프로세스 그룹과 POSIX.1에서 도입된 세션(session)을 소개한다. 9.2 터미널 로그인 터미널을 이용해서 유닉스 시스템에 로그인하는 데 쓰이는 절차를 설명한다. BSD터미널 로그인 시스템 관리자는 터미널 장치당 한 줄씩으로 이루어진 파일을 생성한다. (/etc/ttys) 파일의 각 줄에는 장치 이름과 getty 프로그램에 전달할 기타 매개변수들이 지정되어 있다. 시스템이 시동(booting)될 때 커널은 프로세스 ID가 1인 init 프로세스를 생성 init 프로세스는 /etc/ttys 파일을 읽어서 로그인을 허용하는 각각의 터미널 장치마다.. 2019. 12. 2.