프로그래밍 QnA

yangam의 이미지

C언어에서 _stdcall 이라는 함수(?) 가 있나요?

여기에 올려도 상관없는지 모르겠는데요.. ㅎ_ㅎ;;

제가 읽는책의 예제를 올려드릴께요

/*호출되는 쪽 */
int _stdcall myfunc(int a, int b)
{
return a + b;
}

/* 호출하는 쪽 */
int main()
{
int i;
i = myfunc(123, 456);
}

(아래는 _stdcall 의 역할에 대한 설명, 지루한 분은 맨아래의 질문으로..)
이건 제가 읽는 책에서 나온 예제이고, 아래는 설명입니다

_stdcall을 호출해서 프로그램의 크기를 작게 만드는 기법은
C언어로 프로그램을 만드는 경우에만 유효합니다...(중략)

erenes의 이미지

gettimeofday의 신뢰성문제

안녕하세요.

코드의 처리시간을 측정하는데 gettimeofday함수를 사용합니다.

그런데 이 함수를 사용해서 측정한 시간의 신뢰성은 어느정도일까요?

어느때는 20ms면 거의 그정도로 잘 맞는데.. 어떤 것은 분명 일정한

시간(예로 30ms)으로 나와야 하는데 둘쭉 날쭉한 경우도 있더군요.

예상대로라면 몇번을 실행해도 일정한 시간이 나와야 하는데 들쭉 날쭉한

결과를 보인다면 코드가 잘못일까요? 아니면 gettimeofday함수의

정확성이 원래 별로 안좋은건가요? 아니면 os의 스케쥴링 때문에

seogiga의 이미지

기존에 없는 파일시스템을 커널에 등록하려면...

새로운 파일시스템을 모듈로 올리고 싶은데 어떻게 할지 막막합니다...
새로운 파일시스템이란 기존의 ext2 파일시스템에 파일연산과 관련된 몇개의
시스템 콜만 래핑시켜주기 위해 만들예정인데 ext2 파일시스템을 단순히
다른이름으로 등록시키기 위해선 어떻게 해야 하나요?...
더 구체적으로는 root 파일시스템은 ext2로 마운트가 되어있고요,
빈 파티션에 새 파일시스템을 생성할때 커널에 등록되지 않은
다른이름으로 (물론 아직까지 안에서 돌아가는 것은 기본적으로 ext2와 동일한)

Viz의 이미지

position-independent 하고 relocatable은 어떻게 다른가요?

저의 짧은 지식으로는 특수한 상황이 아닌 경우 컴파일러를 통해 만들어지는 object file은 relocatable하다고 알고 있습니다.
기존의 a.out, coff, ELF 모두 말이죠.

저는 여기서 relocatable의 뜻을 메모리 어디나 재배치 할 수 있다, 즉 프로그램이 커널에 의해 로드되는 과정에서 메모리의 어느 곳으로도 로드될 수 있다라고 생각하고 있었습니다.

그런데 공유 라이브러리를 만들기 위한 gcc 옵션 -fPIC나 -fpic는 position-independent, 즉위치 독립적인 코드를 만든다고 하네요. 그리고 그 설명을 보면 역시 메모리의 어느 곳에서나 로드될 수 있는 코드라고 합니다.

hekimian의 이미지

Object file의 종류에 대한 질문

궁금한 것이 있을때마다 좋은 정보를 찾아가게 해주신 여러분들께 정말 감사드립니다.

"링커와 로더"에 관한 문서를 읽다보니 오브젝트 화일은 세가지로 분류 된다고 나와있습니다.
- 재배치 가능한 오브젝트 화일(Relocatable object file)
- 실행가능한 오브젝트 화일(Executable object file)
- 공유 오브젝트 화일(Shared object file)

각각이 무엇을 의미하는지 흐릿하게 보이기는 하나 정확한 개념이 서질 않네요.
예를 들어 좀 자세하게 설명 해주십사하는 부탁을 합니다.

psjcap의 이미지

pthread_once_t를 초기화하는 방법..

책에 보면..
static pthread_once_t r1_key = PTHREAD_ONCE_INIT 으로 초기화 하도록 되어 있는데요..

초기화를 이렇게 하지 않고.. 선언과 값에 할당을 다른 곳에서 하려고 합니다..
즉.. pthread_once_t 형을 c++ 에 멤버로 하려고 하는데요..

근데 선언과 동시에 값을 대입하지 않고 c++에 생성자에서 초기화를 하면 에러가 나네요..(parse 에러가 나는데.. 왜 parse 에런지 모르겠군요..ㅠㅠ)

생성자에서..

CThreadData::CThreadData()
: m_stOnce( PTHREAD_ONCE_INIT ) <-- 이렇게 해도 에러고..

totohero의 이미지

좀더 영리한 ctags 없나요?

소스를 분석할때 ctags를 쓰면 실제로는 (#ifdef 등등에 의해)
쓰이지 않을 심볼들도 포함되어 불편할때가 있네요. 좀더 영리하게
쓰는 방법 없을까요? 예를 들어 gcc에 -M이 file dependency 출력을
내듯이 ctags 태그를 만들어내는 옵션이 있다든지 하면 좋을텐 말이죠.

saose의 이미지

네트워크 프로그램 리버스 엔지니어링시....

네트워크 프로그램을 리버스 엔지니어링 하려고 하는데...
일단 프로토콜을 분석 하는 일입니다.
근데 이게 쉽지 않더라고요.

일단 패킷을 로깅해서 일일이 확인하는데
너무 힘듭니다.

이 데이터가 뭐에 관한건지...
그런 것들을 쉽게 알수 있는 방법 있는지요?
노하우라든지....

omando의 이미지

c++에서 자식 객체의 type알아내는 방법 있나요?

class A 
{
      .......
}
class B : public A
{
    CLock lock;
    get(int n=10 )
    {
         lock.tryget(this, n);
    }
}

class C : public A
{
    CLock lock;
    get(int n=10 )
    {
         lock.tryget(this, n);
    }
}

class CLock
{
    tryget(A a, int n)
    {
         [b]........(1)..........[/b]
    }
}

이와 같은 상속 관계가 존재 합니다.
tryget() 함수 내의 (1)에서 인자로 넘어온 A a의 실제 객체 type이 class B 인지 class C 인지 알아 낼수 있는 방법은 없을까요?

dreamer의 이미지

rs485 serial port 지원 하나요

임베디드쪽 질문이기는 하지만...

저의 보드에는 serial로 rs485를 사용 합니다.
일반적인 console로 사용 하기위해서 linux에서
지원이 되고 있는지요?
현재 test결과 tx는 잘되는데, rx를 못합니다.
cat /proc/interrupt해봐도 인터럽도 뜨지
않고요.
보통 rs485는 half-duplexx라서 rx관련해서
receive에대한 처리를 해주어야 할 것 같은데
어떤 가요?

페이지

프로그래밍 QnA 구독하기