프로그래밍 QnA + 설치 및 활용 QnA

jic5760의 이미지

Windows에서 Mutex사용시 ERROR_ACCESS_DENIED문제...

안녕하세요.
너무나도 이상한 문재가 발생해서...ㅠㅠ 질문드립니다.

우선 다른 프로세스도 아닌 같은 프로세스 안에서 Mutex을 사용하는데 Access denied 오류가 발생합니다.
그런데 항상 발생하는게 아닌 어느 부분에서만 발생하는데 이유를 모르겠네요...

CreateMutex(NULL, FALSE, NULL)
으로 Mutex을 생성하고 lock이 필요한 곳에서
WaitForSingleObject(hMutex, INFINITE)
로 Lock을 걸고 작업이 끝나면 ReleaseMutex을 하는...
아주 전형적인 Mutex사용법입니다.

그런데 왜 Access denied오류가 발생하는지...ㅠㅠ
뭔가 다른거랑 꼬여서 문제가 생긴걸까요?

참고로 WaitForSingleObject가 0xFFFFFFFF(WAIT_FAILED)을 리턴하고 GetLastError는 5(ERROR_ACCESS_DENIED)를 리턴합니다.

doutor0303의 이미지

MFC -> 안드로이드 간 소켓 통신 시 송/수신 크기가 다릅니다.

안녕하세요.

소켓 통신 시 송/수신 크기가 다른 문제로 인해 문의 드립니다.

MFC는 Server이고(Desktop) Android는 Client(Phone) 입니다.

1. Android에서 접속
2. Android UI에서 버튼을 누르면 커맨드를 서버에 전달하고
3. 커맨드를 받은 서버는 커맨드를 구분하여 HEADER + 파일(이미지)을 전송하는 구조 입니다.

문제는 Server(MFC)에서 전달하는 사이즈는 정상적으로 전달되는 것 같은데,(return 값 sum해서 확인)
Android에서 스트림을 받을 때 값이 약 2048 정도 적게 들어와서 read 함수내에서 무한 블록되는 상태입니다.
(HEADER를 양쪽다 적용하지 않고 단순 파일 전송만 하면 아주 정상적으로 동작됩니다.)

HEADER는 32byte로
파일명[구분자 쉼표]파일크기 \r\n형태로 구성을 하고

jic5760의 이미지

SNORT 클러스터링? 가능한가요?

안녕하세요~
Snort IPS가 클러스터링이 가능한지 궁금합니다!
인터넷 찾아보는데 Snort 여러개의 Node로 Load-balancing을 하거나 failover하는 자료를 찾기가 힘드네요.ㅠㅠ
혹시 Snort을 이용해서 여러 노드로 Load-balancing과 failover하는 자료 있으신 분은 알려주셨으면 좋겠습니다~
미리 감사드립니다!^^

jaykee33의 이미지

java에서 프로세스 - 소켓 스트림을 연결해주고싶습니다.

제가 원하는 형태는
클라이언트가 서버에 접속하고,
서버에 있는 콘솔 프로그램을 실행해서 결과를 소켓을 통해 받고,
프로그램에 필요한 인풋값을 클라이언트에서 소켓을 통해 넣어주고 싶습니다.
간단하게 생각했을땐, 그냥 프로세스 스트림과 네트워크 스트림을 연결시켜버리는걸 생각했는데,
스트림끼리 한방에 리다이렉션 시켜버리는 함수는 없는거같네요??
그래서 에코서버 예제를 이용해서 단순하게
writer=new PrintWriter(new OutputStreamWriter(socket.getOutputStream()));
reader=new BufferedReader(new InputStreamReader(ps.getInputStream()));
String msg=reader.readLine();
여기서 msg에 프로세스 출력값이 정상적으로 넘어오는걸 디버거로 확인했습니다.
근데
writer.println(msg);
이녀석을 호출해도 클라이언트에는 아무것도 찍히지 않네요;;

mydream의 이미지

어셈블리 반복문에서 변수의 값을 출력해서 확인해볼 수 없을까요?

#include <cstdio>
 
int main() {
 
	int count=0;
	__asm {
		MOV ECX, 10
		MOV EBX, 0
		L1:
		INC EBX
		MOV count, EBX
		LOOP L1
	}
        //반복문을 순환할 때마다 증가된 count의 값을 출력해보고 싶은데, 방법이 없나요? 1, 2, 3, ..., 10으로 출력되는 것을 확인해보고 싶습니다.	
 
 
	return 0;
}

laydra의 이미지

stdout redirection 하는 파일 삭제 후 signal 25 발생 시 파일 위치

안녕하세요.

아래 파일이 도대체 어디에 존재하는지 알고 싶네요...
inode 부터 tty 이것저것 보고 있는데 지식이 얕아 궁금증이 해결되지 않네요...

하나의 프로세스의 printf 로그를 stdout 으로 redirection 하여 파일로 쌓고 있다가 ext3 파일 시스템에서
2G가 넘어 다운이 발생해서 해당 로그파일을 주기적으로 지워주는 스크립트를 구동 시켰습니다.
그런데 이게 파일은 지웠는데 또 printf 를 찍다가 signal 25를 발생시키더군요... 한참을 찾아 해매다

lsof -p [프로세스] 명령어로 상태를 보니
test 19108 root 1u REG 104,2 598634496 537956 /temp/test.out (deleted)

위와 같이 deleted 로 되어있는데도 파일 사이즈가 늘어나고 있더군요..
해당 문제는 printf 를 없애거나 /dev/null 로 처리하면 될거 같은데

원인이 뭔지 잘모르겠네요..도움 부탁드립니다..ㅜㅜ

alfhd00의 이미지

autoconf를 사용하여 Makefile만들기

configure.ac 파일을 형식에 맞게 작성하고 autoconf를 명령했는데 error가 발생합니다.
아직 공부한지 얼마되지 않아서 어떤부분이 잘못되었는지 모르겠습니다.

bureokjam의 이미지

함수의 선언과 관련된 질문입니다.

main 함수 내부에서 함수를 선언할 경우 그 함수명의 통용범위는 main 함수로 국한되는것이 맞는건가요?

mydream의 이미지

어셈블리의 곱셈과 나눗셈

스레드에 대해 공부하다가 자원의 경합(Data Racing) 문제에 부딪히게 됐습니다. 스레드 A와 스레드 B가 전역의 공유 자원에 동시에 접근하는 경우 스레드가 연산의 결과를 메모리에 다시 돌려주기 전에 스레드 B가 읽어서 연산을 하면 전역의 공유자원은 덮어 쓰이기 때문에 결국 스레드 A의 연산결과는 무시가 되는 문제가 생기더군요. 이런 문제를 막으려면 원자성이 확보되어야 한다고 합니다. 기계는 하나의 연산을 여러 단계로 나누어서 처리를 하는 경우가 있다고 하더군요. 이 작업이 더 이상 쪼개질 수 없는 단위로 간주해 버리면 원자성이 확보된다는 것인데. 그래서 기계어와 가까운 어셈블리를 배워보려고 관련 서적을 봤습니다. 그런데 덧셈과 뺄셈과 같은 이항 연산은 ADD, SUB와 같은 명령어로 제공이 되는데, 곱셈과 나눗셈은 없는 것으로 보입니다. MUL이라는 명령어는 제곱을 해주는 일항연산이고, 그로 봐서 DIV 명령어는 제곱근을 구하는 명령어로 추측이 되는데요. 이항 연산 관련 연산자로써 곱셈과 나눗셈을 제공하는 명령어는 없는지 궁금합니다. 어떤 명령어로 하면 될까요?

nixon4545의 이미지

디바이스 드라이버 모듈에서 정의한 file operations를 커널소스에서 호출하는 방법

static struct file_operations fops = {
.owner = THIS_MODULE,
.read = sk_read,
.write = sk_write,
.open = sk_open,
.release = sk_release,
};

디바이스 드라이버를 모듈로 insmod를 했고

모듈에서 만든 sk_write를 커널부분에서 호출을 하고 싶습니다
(정확히는 커널에 선언되어있는 vfs_write에서 호출하고 싶습니다)

그러기 위해선 모듈에 선언된 저 fops의 주소를 알아내야할까요?

페이지

프로그래밍 QnA + 설치 및 활용 QnA 구독하기