프로그래밍 QnA

jsseal의 이미지

cross compile시 fdisk의 /lib/libs.so.6 version 오류

다음 명령을 실행했을 때 다음과 같은 오류가 발생합니다.
$fdisk /dev/hda
fdisk: /lib/libc.6:version 'GLIBC_2.2' not found (required by fdisk)

위의 실행 환경은 크로스 컴파일 fdisk 실행파일을 램디스크에 넣고 리눅스 소스 코드로 컴파일된 이미지를 만들어 그 이미지에서 실행했을때 위와 같은 오류가 발생합니다.
어떻게 버전 정보를 맞출 수 가 있습니까?
fdisk는 util-linux-2.12a.tar.gz을 다운 받아서 깔았습니다.

koder의 이미지

alz 압축 해제 소스 입니다.

제가 리눅스 머신이 없어서 bsd 에서만 테스트 해보았습니다.

리눅스에서 잘돌아가지는지좀 테스트 해주세요..

( 안돌아가면 수정도 부탁드립니다. :wink: )

=======================

[수정]

별 문제가 없는듯하여서 몇가지를 수정하여서

http://bbs.kldp.org/viewtopic.php?t=46445

에 파일을 올려 놓았습니다.

i_wish_awk_sed_perl의 이미지

c++ 데몬 생성시...pid 값 출력

c 만 접하다가 c++ 을 접하고 있습니다. pid 값과 문자열이 나와야 할거 같은데 출력이 되지 않네요. 으흠...클래스을 잘못 만든건지요? 에러는 없이 잘 실행 됩니다만...출력이 안되네요.

class Daemon
{
    private:
        char *daemonName;
        pid_t daemonPID;
    
    public:
        Daemon();
        Daemon(const char *name);
        ~Daemon(); 

        pid_t getDaemonPID() const;
        char *getDaemonName() const;
    
};  

[code:1]

qosqos의 이미지

wait를 써도 부모 프로세스는 정지되지 않게 하는 방법 없나요?

좋은 방법을 찾다가...
먼저 질문하신 분의 글을 보게 되었습니다.

Quote:
ulra 씀:
안녕하세요.

wait를 써도 부모 프로세서는 정지되지 않게 하는 방법 없나요?

wait를 쓰면 좀비가 없어서 좋긴한데, 부모 프로세서가 정지가 되어서

제가 원하는 기능으로 동작않네요. 방법이 없나요?

signal과 함께 wait/waitpid를 이용합니다...
왠만한 유닉스 시스템 프로그래밍 책을 보시면 당연히 나오는 이야기입니다...

위의 질답에 대한 자세한 걸 알고 싶은데 답변 부탁 드립니다.

gugudan의 이미지

pthread에서 프로세스의 갯수가 왜 이렇게 나오는지 궁금합니다.

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

void* do_loop(void *data)
{
int i;

int me = *((int *)data);
for (i = 0; i < 10; i++)
{
printf("%d - Got %d\n", me, i);
sleep(1);
}
}

int main()
{
int thr_id;
pthread_t p_thread;
int status;
int a = 1;
int b = 2;
int c = 3;

thr_id = pthread_create(&p_thread, NULL, do_loop, (void *)&a);

pthread_join(p_thread, (void *) &status);

qosqos의 이미지

fork한뒤 자식 프로세스 아이디를 알아서 원할때 죽이고 싶습니

제목 그대로 입니다.

fork한뒤에 부모 프로세스는 그냥 리턴을 하여서 자식 프로세스를 데몬으로 만든 다음,

나중에 언제든지 자식 프로세스를 죽이기 위해 PID를 전역 변수에 저장하려고 합니다.

그런데 이게.. 참..

자식 프로세스에 대한 PID가 저장이 안되네요.
초기값 그대로 있고.
분명 자식 프로세스에서 getpid()를 해서 PID를 얻어놨는데...

정작 죽이려고 할때는 초기값 그대로 되어있네요.

참 어처구니가 없습니다.

요점은
전역변수를 선언.

junteken의 이미지

thread가 깨어 나지를 않습니다...

flash get style의 다운로드를 구현하기 위해서 multithread로
socket을 각각열어서 구현할려고 합니다.
다음 소스에서 보면 StartDownLoad를 실행시키면
vector에 들어있는 request들중에 해당되는것을 찾아서
해당 요청을 처리할수있는 waiting상태의 thread를 깨우게 됩니다.
그런데 처음 thread는 잘 깨어나는데 다음 thread는 깨어나지를
않는군요...vector에 들어있는 request목록에서 찾아서
signal도 보내는거는 같은데요...
흠...무슨 문제일까요? 소스가 길어서 죄송합니다..

cdcmp의 이미지

thread루틴에서 변수값 읽어오기...

안녕하세요....

thread에 대한 질문을 많이 올리는데요....

thread루프에서 배열에 저장된 값을 메인 루프에서 읽어 오니까 어느 정도

읽다가 프로그램이 종료 되어 버립니다....

소스는 다음과 같습니다...
[code:1]

/////thread.cpp///////
#include <iostream>
using namespace std;

#include "thread.h"

FILE *fp1;

extern unsigned char buf[100000];
int cnt = 0;
int i = 0;

Thread::Thread()
{
stopped = false;
}

void Thread::setMessage(const QString &message)

kknd345의 이미지

정렬 좀 분석해주세요..

[code:1]void number_bubble_sort( int array[], int n)
{
int temp;
int move_number=0;
int compare_number=0;

while ( n > 0 )
{
int bdone = 0;
int i = 1;

// 이 1번의 루프로 최대 요소가 오른쪽 끝으로 이동한다.
while ( i < n )
{
if( array[i-1] > array[i])
{
temp = array[i-1];
array[i-1] =array[i];
array[i] =temp;
move_number++;
bdone =1;
}
compare_number++;
i++;
}

//불필요하게 돌리지 않는다.

jhg798의 이미지

커널 2.4.2 에서 랜덤값 발생시키는 법

저는 커널 버전 2.4.2 에서 랜덤 값을 발생시키려고 하고 있습니다.
제가 아는 것은 커널 버전 2.4.18-4에서 커널 컨텍스트에서 get_random_bytes()시스템함수를 사용해서 랜덤 바이트를 생성했는데요.
이 함수가 2.4.2 버전에서는 동작하지 않는 것 같습니다.
쓸만한 함수를 아시는 분이나 링크를 아시는 분은 좀 알려주세요...

페이지

프로그래밍 QnA 구독하기