프로그래밍 QnA

superkkt의 이미지

autotools 관련 질문입니다.

uint8_t, uint16_t, uint32_t 때문에 계속 삽질하다가 autotools를 사용해봤습니다. http://www.opengroup.org 사이트에서 확인해보면 위 타입들은 stdint.h에 있다고 되어 있는데 리눅스에서는 이 헤더가 있는데 솔라리스에서는 없더군요.

autoconf를 사용해서 아래와 같이 체크를 하니까 잘되네요..

Quote:

AC_CHECK_TYPES([uint8_t, uint16_t, uint32_t])

그런데 autotools를 쓰지않고 소스만 그냥 컴파일을 하면 분명히 위 타입들이 정의되어 있지 않다고 에러가 났습니다. autotools를 쓰면 잘 되구요..

jinoos의 이미지

오픈 되어있는 파일을 외부에서 삭제하였을 경우.

fopen 으로 오픈시켜 close 하지 않고 계속적으로 로그를 기록
시키는 프로그램을 작성했는데 누군가에 의해서 기록되고 있는
파일이 삭제되었다면 코드상에서 알아차리고 예외 처리를 어떻게
해야 할까요?

FILE *fp

fp = fopen("/tmp/logfile", "a");

while(1)
{
    fprintf(fp, "Log Message \n");  // ---- 요기
}

fclose(fp);

이런 상태에서 "요기" 부분이 동작될때 실제 파일이 삭제 되면 더
이상 기록이 되지 않던데요. [b]어떻게 이런 상황을 감지 해야 하나

lovemyin의 이미지

Arcnet 소스

안녕하세요.
현재 Arcnet을 이용하여 통신 모듈을 구현하려고 하는데 어려운점이 있어 글을 올립니다.
혹시 리눅스에서 Arcnet 통신을 다뤄보신 분이 있다면 간략한 소스라도 좀 보여주셨으면 합니다.
소스를 직접 보여주시기 힘드시면 관련 사이트라도 좀 부탁드립니다.
구글에서 한참 뒤졌는데 찾기가 매우 힘드네요.

lovejin0309의 이미지

메모리 할당 관련 질문입니다.(커널,임베디드)

안녕하세요.

아날로그 디바이스사의 BF533-EZKIT상에서 개발을 하고 있습니다.

현재 사용하는 배포판은 uClinux입니다.

비디오 인코더 디바이스 드라이버를 개발하고 있습니다.

다음과 같은 형태로 SDRAM을 쪼개서 사용할 계획입니다.

---------------------
비디오 버퍼1
---------------------
비디오 버퍼2
---------------------
비디오 버퍼3
---------------------

사용자 영역

---------------------
커널 & 파일 시스템
---------------------

이렇게 사용하려고 합니다. 이럴때, 비디오 버퍼 영역은 kmalloc이나 malloc를 사용하지 않고

min2to의 이미지

이.. 포인터에 관한 문제가.. 좀...

영 이해가 않가서...... 남기네여;; 흑흑;;

[code:1]
#include <stdio.h>

int ArrAdder(int* pArr, int n);

int main(void)
{
int arr[10]={1,2,3,4,5,6,7,8,9,10};
int sumofarr;

sumofarr=ArrAdder(arr, sizeof(arr)/sizeof(int)); <-이줄이.. 무슨뜻을.. 말하는건지..도무지.. 알 길이없네여;;

printf("배열의 총 합 :%d \n",sumofarr);

return;

}

int ArrAdder(int* pArr, int n)
{
int sum=0;
int i;

for(i=0; i<n; i++) <-이줄이 말하는.. n값은.. 뭔가여.....ㅜ.ㅜ

doogie의 이미지

SIGTERM 문제 .. 도와주십시오...

main thread와 두 개의 thread를 가진 서버 프로그램을
짜는 중인데요..
실행도중에 자꾸 원인모를 SIGTERM을 받아서 죽습니다...

gdb를 걸어봤는데.. 전부 SIGTERM을 받더군요 ㅜㅜ
gdb 메세지는 다음과 같습니다....

Quote:

Program received signal SIGTERM, Terminated.
[Switching to Thread 182903016896 (LWP 28771)]
0x00000037b598e9c5 in __nanosleep_nocancel () from /lib64/tls/libc.so.6

서버의 메인 루프에서 주어진 데이터가 없으면 계속 무한 루프를 돌도록 되어 있습니다.
근데 루프의 usleep(10) 코드에서 자꾸만 죽습니다...

swunk의 이미지

shared memory 관련 궁금 사항입니다.

두개의 프로세스간에 자료구조를 공유하는 프로그램을 코딩 중입니다.
서버와 클라이언트는 message queue를
써서 코맨드를 주고 받고, 클라이언트로 부터 수신된 코맨드가 서버가 생성한 자료구조를 검색하자!! 라는 코맨드에 해당하면 서버쪽에서 기 생성한 자료구조를 shared memory 로 복사해서 클라이언트가 그 자료구조를 참조하게 하려 합니다.

자료구조 내용을 간단히 말씀 드리면
구조체 배열을 생성하고 배열 하나의 엘리먼트에는 포인터가 있고, 포인터가 가르치는 엘리먼트에는 또다른 포인터를 가지고 있고, 해쉬 테이블하고 비슷한 구조 입니다.

cppig1995의 이미지

한글 글꼴 조합 방식에 대하여 알고 싶습니다.

8x4x4, 6x10x4, 10x4(3)x4, 32x11x11, 32x15x11 정도는
조금 알 것 같기도 하고 말 것 같기도 한데...
32x19x11 은 아직 구현되지 않은 건가요?
(자료가 없어서요.)

32x19x11 이상으로 확장할 순 없는 건가요?
(혹은 확장할 필요가 없는 이유가 있다던가.)

metalwolf의 이미지

c 매크로 기능에 대해서 여쭤 보겠습니다.

다름이 아니라 VC++ 6.0은 되는데 g++에서는 안되는 군요.

예전엔 되었다고 생각했는데..

#include <stdio.h>

#define Log(x) printf(x)

int main(void)
{
int nTest = 0;
int nTest2 = 3;
Log("Test[%d][%d]\n",nTest,nTest2 );

return 0;
}

위와 같이 printf를 Log로 define 하면 vc++ 6.0에는 경고를
내더라도 컴파일이 되고 잘 작동 되는데

g++에서는 되지 않군요.

에러는 다음과 같습니다.

macro_test.cpp:12:19: macro "Log" passed 2 arguments, but takes just 1
macro_test.cpp: In function `int main()':

leo~~~~의 이미지

시리얼 버퍼가 꽉찬거 같은데요...

임베디드 보드에 리눅스를 포팅하구요
시리얼 프로그램을 만들어서 보드로 보내고
PC와 보드를 연결해서 PC에서 데이터를
보내면 보드에서 데이터를 받아서
그래프를 그리는데요....
시리얼을 통해서 데이터를 보내는데
약 1000개 정도 보내면 시리얼 버퍼가 꽉차서 그런지
더이상 받지를 못하네요....
그렇다고 프로그램이 죽는 것도 아니고....
버퍼가 꽉차서 그런건가요??아니면 다른 문제인가요??
만약 그렇다면 시리얼 버퍼를 어떻게 비우나요??

페이지

프로그래밍 QnA 구독하기