프로그래밍 QnA

kkojiband의 이미지

klogd 에서 level 설정...?

모듈에서 다음과 같이,

printk( KERN_WARNING "..." );

이렇게 해서 현재 터미널에 메세지를 출력하려고 log level 을 조정을 했는데

출력이 안 됩니다...

/etc/init.d/syslog 에서 klogd -c 4 로 수정을 해서 리부팅을 했는데 안됩니다...

제가 가지고 있는 책에서는,

printk( "<1>..." );

이런 식으로해서 사용을 하라고 하는데, 저렇게해도 터미널에 안 뜹니다...--;

어떻게하든지간에 모두 /var/log/messages 에 기록됩니다...

현재 커널 버젼은 2.4.20 입니다...대체 왜 이럴까요???

soohyk의 이미지

자식프로세서를 생성해서 프로그램을 만들려고 하는데..

제가 미숙한 지라 잘 안되네요...

부모 프로세스에서는 랜덤한 값을 생성하고 자식프로세스에서는
이를 더하는 프로그램을 만들려고 합니다.
fork()를 이용해서 자식프로세스를 생성을 하겠는데...
자식프로세스와 부모프로세스가 전역변수를 사용시에 데이터 공유가
안된다고 들었습니다.
이를 어떻게 해결해야 할지 모르겠습니다.

답변 부탁드립니당~ :oops:

hanul의 이미지

jpeg 포맷의 헤더에서 dri(restart interval field) 의 의미??

jpeg 포맷의 헤더에 dri(restart interval field) 가 있는데..

이 dri 의 값이 무엇을 의미하는지 알고 싶습니다.

dri 값은 restart interval 사이에 있는 MCU 들의 갯수 라는 부분

의 자료를 보긴 봤는데.. 의미가 잘...;;

SOS 마커가 시작되고, ECS(MCUs) 들이 나오고 RST 가 나오는데..

처음 생각 할때는 RST 사이에 있는 간격이 아닐까 생각했습니다.

그리고, 실제로 jpeg 파일을 디코딩 해보니..

RST 사이에 있는 data 길이가 RST 마다 차이가 많았습니다.

dri가 어디에 이용되는 것인지...

alwaysrainy의 이미지

플랫폼에 따라 출력 결과가 ^^;;

#include <stdio.h>

void func(int a, int b);

int main()
{
        int     a = 0;

        //func(++a, ++a);
        func(++a, ++a);
}

void func(int a, int b)
{
        printf("%d\n", a);
        printf("%d\n", b);
}

위의 코드를 두 플랫폼에서 실행시켰을때 x86 플랫폼에서는
2, 1이라는 실행결과가 sparc 플랫폼에서는 1, 2라는 실행결과가
출력되었습니다. 이는 단순히 컴파일가 각각의 플랫폼에 맞는 어셈

cho&#039;s의 이미지

인라인 어셈을 공유 라이브러리로 만들었을때 발생하는 문제

안녕하세요. 일을 하다가 풀리지 않는 문제로 고민하다 글을 올립니다.
인라인 어셈을 공유 라이브러리로 만들었을때 문제가 발생하고 있습니다.
스태틱하게 할때와 shared형태로 할때가 결과값이 전혀 다르게 나타나고 있거든요요.
처음에는 static하게 빌딩해서 아무 이상이 없었는데
공유 라이브러리로 만들기 위해서 -fPIC옵션을 주면 전혀 다른 값을 내보냅니다.
이미지 관련 루틴인데 mmx 인라인 어셈으로 처리했구요. 간단하게 보자면 다음과 같습니다.

ar의 이미지

변수에 할당된 메모리 확인?

#include <stdio.h>
#include <stdlib.h>


int main()
{
  char  *p;

  printf("sizeof(p) => %d\n", sizeof(p));
  p = (char *) malloc(sizeof(char)*100);
  printf("sizeof(p) => %d\n", sizeof(p));

  return 0;
}

./a.out
sizeof(p) => 4
sizeof(p) => 4

스택에 존재하던 4b 크기의 포인터 변수 p가
sizeof(char)*100 크기로 할당된 힙 영역의 위치를
참조하기 때문에 p에게 할당된 메모리는 4b로

shean0의 이미지

0=read()에 대해서 문의드립니다.

안녕하세요.
시스템 환경은 다음과 같구요..
솔라리스에서 tcp통신을 구현해서 사용중입니다.

 무선통신 client --->요청 --> 서버
   [서버에서: 요청데이터 read_len이 return하는 시간이 12초 정도 걸립니다]
                        <--응답 ---
                      :접속 끊음.  이후 이것을 반복

아래처럼 read_len 이라는 것을 만들어 사용중인데요..
지금 까지는
nread==0 이면 continue로 처리했는데.. 그러니.. 좀비처럼 남아있는 프로세스가 생기더군요.
antz의 이미지

&lt;검색서버&gt; TPS 테스트에서 Request Fail

인덱스를 20G 정도 쓰고 있는 검색엔진을 개발하고 있습니다.

File System으로 데이터를 가지고 있습니다.
DISK I/O가 많으니 여러가지로 문제가 발생하고 있습니다.
(30 User/Sec 하니까 Load Avrg가 7까지 올라가는 군요. :? )

TPS( Transcation Per Sec)를 테스트 하고 있습니다.
5 User/Sec 로 2분간 테스트 하면 어느정도 버티다가
Request Fail이 납니다.
(Request Fail은 20초이상 응답이 없을때 발생하도록 해놓았습니다.)

아직 원인은 파악 중입니다만,
이 테스트에 잘 못될 수 있는 부분이 많아서요.

pebiman의 이미지

함수포인터에 관해서...

아래와 같이 했을때 함수포인터는 입력이 됩니다.

typedef struct _tag
{
     void *p_function
}tag;

void *function()
{
   return NULL;
}
int main()
{
     tag p_tag;
     p_tag.p_function = function;  // 이렇게 하면 , p_tag에 function()의 포인터가 들어갑니다.
     tag *p_tag; 
     p_tag->p_function = function ; //이렇게 하면 에러나 나는 이유가 무엇인지요?
     
}
sjahn90의 이미지

현재 snd buffer의 저장된 사이즈를 알아오는 방법과 그것을 지

TCP를 이용하여 네트워크 프로그램을 하다가 보면 snd buffer가 full이 되어 send 함수에서 block이 되는 경우가 발생합니다. (물론 응용레벨에서 sync를 맞추기 위해 ack 받으면 문제가 없겠지만.)

현재 snd buffer의 저장된 사이즈를 알아오는 방법이 있나요? 그리고 만약 full이 된 상태일 경우에 강제로 snd buffer을 저장된 내용을 지울 수 있는 방법이 있나요?

rcv buffer의 경우는 ioctl(iSockfd, FIONREAD, &iRead) 이런식으로 rcv buffer에 저장된 사이즈를 알아오던데..

페이지

프로그래밍 QnA 구독하기