프로그래밍 QnA

purewell의 이미지

popen 버퍼링을 없애고 싶어요.

fp = popen("tail -f /var/log/mylog.log", "r");
fd = fileno(fp);
setbuf(fp, NULL);
 
while (1)
{
    // 중략
    FD_ZERO(&rtest);
    FD_SET(fd, &rtest);
    select (FD_SETSIZE, &rtest, NULL, NULL, NULL);
 
    if (FD_ISSET(fd, &rtest)) { read from fd; write to stderr; }
}

위와 같은 구문에서 천천히 자라고 있는 엄청난 크기의 로그 파일을 읽어서 화면(표준오류로 하여 버퍼링 없음)에 찍어주는 것인데, 중간에 버퍼링을 하는 것 같습니다. 분명 로그를 만드는 쪽에서는 fflush를 하든 버퍼링을 쓰지 않든 해서 완벽한 한 줄을 로그파일에 기록하는데 화면에 찍히는 것은 끝부분을 완결하지 않은 줄입니다.

vudghkzm의 이미지

vim 7에 ctags 기능을 다음과 같이 변경하고 싶습니다.

vim 7.0 에 excuberant ctags 를 사용하고 있습니다.
Ctrl + ] 키로 이동하면 vim 창 아래에 조그만 창이 하나 split 되면서 검색된 모든 tag이 보이고 번호를 눌러서 이동할 수 있더라구요. 만약이 tag 이 유일하면 바로 자동으로 이동하더군요.

그런데 제가 다른곳에서 vim을 사용할 때는(아마 버전이 6.3 인듯), tag 이 여러개이더라도 우선 tags 파일에서 가장 먼저 보이는 곳으로 우선 자동으로 이동이 되었구요. 그래서 전 :tn 명령으로 그 다음 tag 로 이동하는 방법을 사용해 왔더랍니다.

vudghkzm의 이미지

다음의 코드가 왜 오류가 없는지 궁금합니다.

typedef void* (*_t)(void*);
 
int main() {
    _t a;
 
    return 0;
}

왜 _t a; 라고 선언한 줄에서 컴파일 오류가 안 나는지가 궁금합니다.
(*_t)(void*) 를 void* 라고 선언했는데, 이것이 그냥 _t 타입으로 써도 된다는 뜻이 왜 되는건지 모르겟어요.
아시는분은 알려주세요.

siba555의 이미지

unix에서 실행파일 배포는 어떻게 하나요?

윈도우에서는 인스톨쉴드나 이노셋업등으로 셋업파일을 만들어서 배포하는걸로 아는데 유닉스에서는 어떻게 하나요 그냥 tar로 묶어서 배포하시나요?

실행파일을 배포할려고하는데 자세한 설명좀 해주시면 정말 감사하겠습니다.

purewell의 이미지

accept한 소켓 속성 상속하나요?

더듬더듬 기억을 거슬러 올라가 2.4 커널에서 리스닝 소켓에 넌블럭 속성을 넣어주고,
그것에 억셉트해서 새로 생긴 클라이언트와 통신을 위한 소켓은 넌블럭 속성이 세팅되지 않았습니다.

그런데 2.6 커널에서 아무 생각 없이 짰는데 아무 생각 없이 속성이 상속 받아 있더랍니다.
확실히 바뀐게 맞나 관련 changelog를 뒤지는데 한도 끝도 없어서 도움을 받고자 합니다.

gugudan의 이미지

sed에서 치환을 하고 싶습니다.

먼저 변수에 어떤 값이 들어가 있습니다.
예를들어
KLDP='aaa/bbb/ccc'
이렇게 저런값이 들어가 있습니다.

이때 echo $KLDP를 하면
'aaa/bbb/ccc'
머 이렇게 나왔을때

echo './abcdefg' | sed 's/\./'$KLDP'/g'
이렇게 할려고 합니다.

즉 앞의 .을 $KLDP로 바꿀려고 합니다.
그런데 $KLDP안에 있는 값에는 '/'이런 문자 때문에 계속 에러가 나네요..

나빌레라의 이미지

리틀엔디안에 관계된 문제로 사료됩니다.. 하지만 이해가 안됩니다..

리틀엔디안 : 바이트열의 작은 쪽이 앞에 저장
빅엔디안 : 바이트열의 큰 쪽이 앞에 저장

하지만 비트 스트림은 빅엔디안 유지.

그래서 4F20 이

빅엔디안으로 들어가면 4F20 고대로 리틀엔디안으로 들어가면 204F 로 들어감.

=======

제가 알고 있는 빅 엔디안과 리틀엔디안에 대한 지식은 여기 까지 입니다.

eminency의 이미지

현재 active한 network interface 이름을 받아오는 방법이 있는지요?

좀 더 정확히는.. 현재 network에 연결된 network inetrface의 mac 어드레스를 알려고 하는데요. eth0인지 eth1인지 인터페이스 이름만 알면 mac 어드레스를 받는 것은 문제가 없는데 인터페이스 이름을 어떻게 받아야 할 지가 문제네요.

리눅스는 eth0으로 시작하므로 그냥 순서대로 집어넣어봐도 상관은 없지만... /proc을 이용해도 되구요.

haedal의 이미지

C++가상함수 다중상속 부분 질문이요~급해용 ㅠ.ㅠ

1.다음 클래스군의 계층도를 그리고, 이 클래스 군에 있는 추상클래스를 모두 골라주세요.
class base1
{
virtual void a () = 0;
virtual void b () {};
};

class base2
{
virtual void c () = 0;
};

class dev1 : virtual public base1, protected base2
{
void b () {}
};
class dev2 : virtual public base1
{
void a () {}
};

class dev3 : public dev1, public dev2

proneer의 이미지

임베디드 프로세스 정보 프로젝트에 관한 질문...

이번 학교 Term프로젝트로 Host에서 Target의 프로세스 정보를 알기 위한 프로젝트를 하려고 합니다.

Target에서는 데몬이 돌고 있고 Host에서 신호를 주면 Target은 자신의 프로세스 정보를 Host로 전송합니다.

Host에서는 QT를 이용해 적절하게 보여줍니다.

보안 관리를 위해 프로세스 정보를 언제 어디서나 쉽게 알수 있도록 하기 위함이 목적인데...

페이지

프로그래밍 QnA 구독하기