프로그래밍 QnA

tatchi의 이미지

[완료]sprintf에 관련한 질문입니다.

void function1(char** arg, char *str)
{
    char* tmp;
    int i=0;
 
    tmp = strstr(str, "hi");
 
    if(tmp != NULL)
    {
        while( tmp[i] != '\r' )
        {
            sprintf((*arg)+i, tmp[i]);
            i++;
        }
    }
}

lmk378의 이미지

kernel 2.6으로 넘어오면서 다른 프로세스의 task_struct 또는 mm_struct를 가져올 수 있는 명령어가 없나요?

2.6에는 find_task_by_pid() function이 없는것 같더군요
혹시 다른 프로세스의 task_struct나 mm_struct를 가져올 수 있는 명령어 없나요?

artop0420의 이미지

[완료] PHP문제? MY-SQL문제? 데이터 이관후 DB접속불가.

서버 이전때문에 DB와 웹을 백업서버로 백업했습니다.

개발은 PHP로 했고요. DB는 My-SQL을 사용했습니다.

이관된 서버에 DB UserID와 PW를 동일하게 설정했고요. 콘솔상에서도 접속이 가능한데
막상 웹페이지를 띄우면 mysqli_connect관련해서 오류메시지를 출력합니다.
웹페이지 경로나 DB권한, 유저 패스워드는 기존것으로 동일하게 맞추었고
다른게 있다면 원래 서버 mysql버전이 5.0.45 이고, 백업서버의 mysql 버전이 4.1.22 입니다.

php에서 접속하는 명령을 mysqli_connect('호스트네임','유저','유저패스워드',"사용할DB명");
이렇게 해서 접속하는데 말이죠..ㅠ_ㅠ
혹시 MYSQL버전이 4.X대면 mysqli_connect명령어가 사용이 안되나요?

자문..자답입니다.
구글링 한 결과 mysql4.x대는 php 에서 mysqli 문이 안되네요..ㅎㅎ

dingkyu의 이미지

UDP 소켓을 하나 열고 있는 서버 프로그램은 어떻게 테스트용 프로그램을 짜야 정확하고 객관성이 있을까요 ?

안녕하세요.

이번에 제가 UDP소켓을 하나 열어놓고있는 서버를 하나 만들었습니다.
IOCP형식을 이용하는 것인데, 생각한 대로 움직이는것 같아 동작에 대한 테스트는 얼추 마쳤습니다.
이제 성능테스트를 해야 할껀데 간단한 클라이언트 프로그램을 만들어 서버에 접속해 보면 되겠다라고 단순히 생각했지만, 어떻게 해야 최대 접속자 수라든가 성능을 수치적으로 표현할 수 있는가 에 대한 의문에 부딧쳤습니다.

그냥 저 혼자 생각이지만, 클라이언트 프로그램에서 초기화 할때 n 개의 소켓을 생성해 놓고 계속해서 일정량의 패킷을 보내면 이게 n 개의 접속자 수를 처리한다라고 표현해도 되는것인지, 혹시 다른 방법이 있는건 아닌가 하는 궁금증이 생겼습니다.

네트워크 프로그래밍에 경험이 없다보니 간단한듯 하면서도 아리까리 하네요..

보통, 서버를 구축하여 성능을 테스트 할때 어떤 방식으로 테스트를 진행하게 되나요 ?

soratz의 이미지

함수가 많아지면 어떤식으로 관리하세요?

안녕하세요.

간만에 코딩을 하다보니 재미도 있고, 머리도 아프네요 !

하다보니 .c파일에 함수가 20개정도가 되어버렸는데

여러분은 보통 함수들의 순서는 어떻게 하시나요?

abcd순으로 하시나요? 아니면 다른 편한 방법대로 하시나요?

함수가 많아지니 이런거 관리하는 것도 능력이라는 생각이 드네요!

익명 사용자의 이미지

소켓프로그래밍에서.. connect되는 출력문을 읽기 위해 read 사용...

안녕하세요

프로그래밍을 하다가 막히는 부분이 있어서 질문 올립니다.

소켓을 생성한 후에 connect를 하게 되면 그 출력문을 컨트롤 하기 위해

read로 소켓디스크럽터의 출력내용을 읽어오게 하였는데...아무것도 안들어있네요..??

제가 이렇게 구현을 하는 이유는 프로세스 포트를 찾는것을 만들고 있으며

정상적으로 connect시 출력내용을 읽어와서 ftp포트가 맞는지 하는것입니다..

코드는 아래와 같이

connect(sockfd,(struct sockaddr*)&dest,sizeof(dest)) 후에 정상적으로 연결되면

read(sockfd,data,1024)로 하였는데

data에 아무것도 들어가질 않네요... connect까지 정상적으로 되는것은 분명한데 왜 아무것도 안읽히는건가요??

위와 같은 식으로 하면 원래 안되게 되는거라면...어떤식으로 처리를 해야 하는건지 해답좀 부탁드려요..

도움좀 부탁드립니다.

bigbaby의 이미지

좀비 프로세스 처리 방법

안녕하세요..좀비 프로세스 처리 관련하여 질문드립니다.^^

클라이언트에서 커넥션 갯수 만큼 fork()하여 자식프로세스를 생성하고 있습니다.

중간에 커넥션이 종료되면 자식프로레스는 종료가 되고, 다시 fork()하여 재접속하도록 구현되어있습니다.

부모 프로세스는 SIGCHLD 시그널에 대해 아래와 같이 시그널 핸들러를 설치하였습니다.

while (waitpid(-1, NULL, NOHANG) > 0){}

부모 프로세스가 종료되어야 할 상황이 발생하여 모든 자식 프로세스에 종료 시그널을 날렸고,

자식이 종료되어, SIGCHLD 시그널을 받아, 처리해주었습니다.

이때, 모든 자식 프로세스 갯수만큼 SIGCHLD 시그널을 받기 전에(종료 대기시간 초과),

exit(1) 를 호출하여 부모가 종료되어야 하나 hang이 걸리는 상황이 발생하였습니다.

strace로 확인해보니 아래와 같이 출력되었습니다.

futex(0x9ca8e88, FUTEX_WAIT_PRIVATE, 2, NULL)

toss의 이미지

c언어 외부 출력방법

특정키를 입력받으면
1~n까지의 수를 외부에 입력하려합니다.

특정키를 입력받는 함수와
숫자를 외부(메모장, 웹등의 입력창)에 입력는 함수를 알고싶습니다.

withmelody의 이미지

sys/queue.h에 포함된 TAILQ 관련 매크로 사용 질문입니다!

일단 제가 알고있는것을 말씀드리면요..

본 매크로는 더블링크드리스트의 사용을 위한 매크로로써

양 옆의 오브젝트를 가리키는 포인터변수 2개를 하나의 구조체로 포함하고 있습니다.

예를들어,

struct object{
int objnum;
struct object* prev;
struct object* next;
}

로 사용하기 보다는,

struct object{
int objnum;
TAILQ_ENTRY(object) entries;
}

로 정의하여 구조체 entries 내부에 있는 prev와 next를 사용하는 것이지요..

이상 제가 알고있는 부분이구요, 질문할 내용은요,

제가 만들어야 하는 것은 여러개의 포인터변수를 가져야 하는 하나의 구조체 인데요,

TAILQ_ENTRY()를 사용하지 않고 2개 이상(4개)의 포인터변수를 가지고 있을때

매크로를 정상적으로 사용할 수 있는 방법이 있는지 말입니다..

jeongheumjo의 이미지

[완료]C++ 기초 문법 질문 임돠

너무 초보적인 질문이라 챙피합니다만,
잠시 챙피함을 무릅쓰고 궁금한 것 여쭙습니다.

클래스를 구현할 때 보통 .h 와 .cpp 파일로 나누어서 코딩한다고 C++ 책에서 읽은 것 같은데요,
헤드퍼스트 디자인패턴 책에서 보면 클래스 구현을 모두 .h 파일에 넣었더라구요..
이렇게 하면 클래스를 가져다 쓰기가 참 쉬워서 좋더라구요..
저도 그렇게 하고 있는데, 회사 사람 한명이 그렇게 하면 모든 클래스의 맴버 함수들이 인라인으로 빌드되는 것이라고 하네요...
제가 책을 다시 찾아봐도 인라인으로 사용하기 위해서는 inline 이라고 명시적으로 선언해주어야 하는 것으로 알고 있거든요..

클래스 구현을 .cpp 파일을 사용치 않고 모두 .h 파일에 하면 모든 맴버 함수가 인라인 함수가 되나요?

감사합니다.

페이지

프로그래밍 QnA 구독하기