프로그래밍 QnA

jic5760의 이미지

fopen 외부 프로세스에서 읽기 가능하게 하는법?

리눅스에서
FILE *fp = fopen("file", "wt");
이렇게 하고 파일에 데이터를 쓰는 도중에 (fprintf(fp, ...), fflush(fp))
다른 프로세스에서 file을 읽으면 아무것도 읽히지 않습니다.
꼭 fclose으로 닫아줘야만 읽을 수 있는데 그러지 않고 공유하며 실시간으로 읽을 수 있게 하고싶습니다.
어떻게 해야 할까요?

kese111의 이미지

mac osx DMAC 읽는 방법?

안녕하세요. 맥 osx에서 DMAC 레지스터 내용을 읽어오려고 합니다.

DMAC가 매핑된 메모리 주소나 함수를 찾아야 하는데...
리눅스의 경우는 쉬이 찾을 수 있겠으나 mac osx에서 매핑된 주소를 찾지 못해 도움을 청합니다.
한 2틀정도 찾고 있는것 같은데 현재까지는 IODMACommand 클래스를 통해 DMA 사용하는 방법만 줄창 나오고...

아시는분 계실까요?

ps. 윈도우인터널 같은 osx용 서적도 혹시 아시면 추천 부탁합니다~

morolty의 이미지

C 동적배열 할당, 초기화시에 궁금한점이 생겼습니다.

int main(void){
        char *buff = NULL;
        while(1){
                buff = (char *)malloc(sizeof(char) * 1024 * 1024 * 16);
//              memset(buff, 0x00, sizeof(char) * 1024 * 1024 * 16);
                sprintf(buff, "aasdfasdf");
                fprintf(stderr, "%s\n", buff);
                free(buff);
                buff = NULL;
                sleep(5);
        }
        return 0;
}

정말 단순하게 할당, 문자열 복사, 출력하는 코드입니다.

jang5497의 이미지

Pthread 활용


Pthread_create로 Thread를 생성한후 pthread_join으로 리턴값을 받아 드립니다. 이것이 여러번 시행시일시에는 그만큼 만들고 지우는것이 반복되 시간상 손실이 발생하게 되더군요.

while(조건1 ){

for(i 만큼 반복 ){
pthread_create(&p_thread[j],NULL,t_function,NULL);// t_function 반복
}
for(i만큼 반복){
pthread_join(t_function 리턴값을 받음);
}
}

denmark114의 이미지

직접 짠 malloc/free 최적화 도와주세요

얼마전 자유게시판에 C/Java 속도비교글 올렸던 사람입니다. 관련해서 올립니다.

자잘한 메모리 동적 할당을 아주 많이 하게될 프로젝트가 있습니다. 기가바이트 단위로 트리를 만들었다 지웠다 하면서 연산을 해야합니다. C로 짜지 않으면 안되겠다 했는데 테스트를 해 보니 MinGW/GCC에서 기본으로 제공하는 C 라이브러리의 malloc/free 함수가 너무 느린것 같습니다.

[코드 1]: C로 짠 테스트코드
[코드 2]: Java로 짠 테스트코드
[코드 3]: 직접 짠 malloc/free 함수

[코드 1]을 컴파일 할 때에 매크로 MJ_ALLOCATOR 를 정의해주면 제가 짠 malloc/free 함수를 대신 사용하게 됩니다. 지금 문제는 malloc/free함수의 성능이 기본버전이나 제가 짠 버전이나 Java의 메모리 관리자보다 많이 느립니다. 아래는 테스트 결과입니다.

운영체제: Windows 7

gomgomshrimp의 이미지

html5 canvas에서 텍스트 입력을 한글로 실시간으로 받는 문제입니다.

document.onkeypress = function (e) {
var key = String.fromCharCode(e.which);

e.preventDefault();
insert(key);
};

function insert(key) {
currentText += key;
restoreDrawingSurface();
drawCurrentText(temp);
}

html5 canvas로 그림판을 만드는 중인데 Text 입력에서 영어는 잘 받아지는데 한글을 도저히 입력을 받을 수가 없더라구요

위에 코드는 키보드 눌렸을 때 키값으로 현재 문자열을 계속적으로 추가해주는 일부분인데요
어떻게하면 한글을 currentText 문자열에 입력을 받을 수 있을까요... 불가능한걸까요

trymp의 이미지

linux 에서 interrupt 구간에서는 현재 current 가 바뀌나요?

linux kernel 초보입니다.

kernel 에서 current 는 현재 task 에 대한 포인터인 걸로 알고 있습니다.

linux 2.6 SMP 가 적용된 multi core 이고 아래와 같이 돌고 있을 때,

0번 core : A_process
1번 core : B_process
2번 core : C_process
3번 core : D_process

1번 core에서 패킷을 수신해서 NIC interrupt 가 발생한 경우

인터럽트 구간에서 current 를 보면 current->comm 이 B_process 인가요?

current 는 interrupt 구간내에서도 프로세스 컨텍스트의 것으로

그대로 유지가 되나요?

제가 잘 몰라서 고수님들의 조언을 부탁드립니다.

답변주시면 감사하겠습니다.

balgarac1의 이미지

서버측 무한 뤂 현상 질문입니다.

쓰레드를 생성해서 비동기로 IO를 하는 중입니다.

아래의 코드는 서버 측 코드이구요. 문제가 되는 부분은

클라이언트가 정상 종료를 거치지 않고 그냥 껐을 경우

아래 while문이 무한으로 돕니다. 에러 코드는 10054로 나오구요.

왜 이런 현상이 나타나나요?? 해결하기 위해선 어떤 조치를 취해야 하나요??


secretdog1의 이미지

특정 맥 어드레스가 내부 네트워크에 접속되어 있는지 탐지해내는 프로그램을 만들고 싶습니다.

파이썬으로 특정 기기가 내부 네트워크에 접속되어 있는지 여부를 확인하는 프로그램을 작성하고 싶습니다.

예를 들어 밖에 나갔다가 집에 들어오면 스마트폰이 집의 와이파이에 연결이 되는데, 이 때 연결이 되었다는 것을 잡아내고 싶습니다.

어떻게 해야 좋을까요?

HDNua의 이미지

C의 입력 버퍼를 비우는 방법

안녕하세요. 휴가 나온 군인입니다.

제가 봤던 입문서에서도 그랬지만 Windows에서 입력 버퍼를 비울 때는
fflush(stdin)을 호출하여 입력 버퍼를 제법 간단히 비울 수 있습니다.
다만 이건 Windows에서만 가능한 것이고 다른 운영체제에선 정의되지 않은 동작이다라는 설명이 붙어있군요.

그래서 저는 모든 운영체제에 범용적으로 적용 가능한 clearReadBuffer를 만드려고 검색도 해보고 많은 노력을 했습니다.

1번 방법

페이지

프로그래밍 QnA 구독하기