프로그래밍 QnA

keoldn1의 이미지

c++에서 오브젝트 리턴 시 자동으로 삭제되는 문제

행렬 관련 프로그램을 작성하고 있습니다.
연산자 오버로딩으로 연산을 수행한 후, 결과 객체를 리턴하고자 합니다. 그런데 리턴이 되기 전에 destructor가 호출되서 메모리를 다 정리해버리더군요. 그래서 리턴 객체의 함수를 호출하면 에러가 발생합니다. 어떻게 해결할 수 있을까요??....

shockwave7의 이미지

C언어 이차원배열 동적할당에 관해서 질문있습니다.

안녕하세요

C언어에서 이차원 배열을 동적할당으로 생성 하였습니다.

값을 초기화 할때 생성후에 함수 인자로 넘겨서 함수에서 값을 초기화 시키고

다시 메인에서 출력시키면 프로그램이 죽어 버립니다. APPCRASH 이벤트가 생기면서 프로그램 닫기가 뜨네요...

메인에서 초기화 시킨뒤에 출력시키면 제대로 출력되구요...

함수에서 초기화 시키고 출력문까지 넣어서 출력시키면 또 되네요...

혹시 포인터를 잘못 넘긴건가 싶어서 동적할당 말고 정적할당으로 생성시켜서 해보면 또 되네요...

어떻게 해결해야 할까요? 제가 모르고 있는 뭔가가 있는것 같습니다 ㅠㅠ

생각을 해봐도 해결방법이 잘 떠오르지 않네요 고수님들의 도움을 부탁드립니다 ㅠㅠ

소스는 아래와 같습니다.

choijs007의 이미지

nohup 백그라운드 scp.sh 로 파일 전송시 문제점

안녕하세요. UNIX 막 공부하는 초보자입니다. 도움이 필요해서 글 올립니다.

예를들어 14mb 정도 되는 .mpg 파일이 있다고 하면

아래 쉘을 [root@test-1]./test.sh 이렇게 기동하면 파일 전송시 이상이 없습니다.

[root@test-1]nohup ./test.sh & 백그라운드로 기동하면 네트워크 속도가 빠른 server ip는 14mb 파일 이상없이
전송이 되는데 네트웍 속도가 잘안나오는 server 들은 파일이 잘려서 전송이 됩니다.

제가 생각하기에는 nohup 백그라운드로 기동시 하나의 파일전송이 끝나기전에 중단되고
다음 작업으로 넘어가는거 같은데...이유를 정확히 모르겟네요. 알려주시면 감사하겠습니다.

또 하나 crontab에 스케쥴을 걸어서 동일한 sh을 돌리는데에도 상황이 똑같네요.
100% 파일전송이 안된상태에서 다음 작업으로 넘어갑니다.

[root@test-1]cat test.sh

$!/bin/sh

system77의 이미지

[완료]자바 스레딩 arraylist 동시 사용

자바 프로세스 안에서 두개의 스레드가

A 스레드는 끊임없이 arraylist에 put 을하고

B 스레드는 끊임없이 arraylist에 get 을 합니다.

두쓰레드는 arraylist에 대한 lock이걸리면 안됩니다.

이렇게 프로그래밍하면 오류는 안나는건가요?

A 스레드가 쓰는 도중 B 스레드가 읽는다면 메모리 오류가 없는지 알고싶습니다.

declspec의 이미지

strace 에 대해서 자세히 아시는분

리눅스에서 strace 를 하면
인풋으로 준 프로그램의 시스템콜을 추적합니다

질문1. 그런데 setuid 가 걸린 프로그램을 인풋으로 주게되면
setuid 걸린게 무시된것처럼 됩니다. 왜이러는건가요?
예를들어 a 라는 프로그램은 getuid, geteuid, getgid 를 호출해서
각각결과를 보여주는 프로그램인데 여기에 setuid 가 걸려있습니다.
이걸 실행하면 euid 가 다르게 나와야합니다(파일 오너와 실행자가 다를때)
그런데 strace 를 사용해서 a 를 실행시키면 uid, euid 가 같게 나타납니다(setuid 가 무시됨)
왜이런 결과가 나오나요?

질문2. strace 에게 a 라는 프로그램을 입력으로 주면
strace 는 내부적으로 어떤일을 하는건가요?
execve 같은거로 a 를 실행시키는건가요?
어떤원리로 a 의 시스템콜들을 추적할수 있는건가요?

declspec의 이미지

execve() vs system()

리눅스에서
execve 와 system 함수의 차이는 먼저
system 함수의 경우 작업이 끝날때까지 호출한 프로세스가 대기하다가 계속 수행하고
execve 는 호출 프로세스가 바뀌어버린다는 점이 있습니다.

그런데 setuid 가 걸린 프로그램에 대해서도 차이가 있는거같은데 누가 설명좀 해주세요.

먼저 a 라는 프로그램이 root setuid 가 걸려있다고 칩시다.
이때 a라는 프로그램에서 system("id") 를 호출한 결과랑
system 대신 execve 를 호출해서 id 를 수행한 결과는 같습니다.

그런데 같은 상황에서 system("/bin/cat /bin/shadow") 를 하는것과
이것을 execve 로 하는건 다른결과가 나타납니다. 왜이런가요?
system 으로 했을때는 shadow 가 보이는데 execve 로하면 퍼미션 에러납니다
왜그런지 설명좀 부탁드려요~

declspec의 이미지

리눅스 시스템콜중에

리눅스 시스템콜중에
가상메모리 시작주소와 범위를 페이지단위로 주면
해당영역이 메모리 r w x 중 어떤 권한이 설정되있는지
조사할수있는거 없나요?

그리고 4GB 가상메모리공간 전체를
mprotect 등의 시스템콜로 전부 rwx 권한을 다준다음에
다 읽고쓰려고하면 어떻게되죠?

애당초 줄수가없나요? 아니면 읽고쓰다가 sigsegv 같은에러나나요?

콩수니의 이미지

임베디드 리눅스에서 시작시 실행되도록하는데요~sqlite3가이상해요.ㅠ

암베디드 보드에서 리눅스 프로그램을 짜고있는데요
보드 전원올리면 자동으로 프로그램이 실행되도록 하려고 합니다

프로그램 기능은 기본적으로 무한 루프로 소켓 서버를 돌리고 쓰레드 하나를 만들어서 sqlite3에 특정 값을 계속적으로 저장합니다
이때 소켓 클라이언트가 접속하면 쓰레드가 하나 더 만들어지면서 sqlite3에 저장되있는 값을 가져가는 형태입니다.

보드를 켜고 직접 명령어로 쳐서 실행하면 원하는 형태로 잘 됩니다

문제는 전원켜고 시작하도록 하려고 하는 데서 발생합니다
시작프로그램 작성방법은
/etc/init.d에

아이피 설정 명령과 프로그램 실행 명령문을 만들어서 저장하였습니다.

보드 전원을 켜면 프로그램이 실행이 됩니다
근데 sqlite3에 저장을 실패 하더군요
오류는

#define SQLITE_CORRUPT 11 /* The database disk image is malformed */

yjung의 이미지

빠른 공개 이미지 라이브러리 알고 계신 것 있나요?

현재 윈도우 ce 개발 중이고 윈도우의 IImagingFactory, IImage 를 사용하고 있는데 용량큰 이미지 파일을 처리할 때 너무 느립니다.
윈도우 ce 6.0 에서 사용할 수 있는 성능 좋은 공개 라이브러리 알고 계신 것 있으신가요?

페이지

프로그래밍 QnA 구독하기