프로그래밍 QnA

은영신랑의 이미지

여러개의 프로세스를 돌리는 프로그램 질문이요....

:roll: 프로세스가 4개가 차례로 도는 프로그램을 만들고자 하는데요, 꼭 차례대로 돌아야하며 하나라도 죽으면 종료가 되어야 합니다.

우선 task를 돌려주는 프로그램이 있어서 fork()->execl()로 각각의 task를 실행하게 해주고, 공유메모리와 4개의 세마포어를 이용하여 서로 주고 받으면서 차례대로 실행을 하는것입니다. 각각의 태스크는 무한루프안에서 자기의 세마포어를 기다리다 받으면 실행하고 종료되면 다른 프로세스에서 세마포어를 주고 자기의 세마포어를 기다리는 식입니다.

leolo의 이미지

전역으로 선언한 메모리의 해제..

다음은 헤더파일에 전역으로 구조체를 선언하고
cgi로 데이터를 받아 선언된 구조체에 각각 넣고.
이를 화면에 출력하는 것입니다.
1초 간격으로 계속해서 cgi를 실행하고요..
그런데.. 이렇게 사용하면. free명령을 통해 리눅스에서 보면..
계속해서 사용가능한 메모리가 줄어듭니다.
기본적으로 전역으로 선언한 메모리는 메인프로그램(여기서는 cgi)이
죽으면 free되지 않나요?
다른 처리를 가해야 하나요..
어떻게 해야하는지 알려주세요..
참고로. ps하면 이전에 수행한 cgi는 죽어 있습니다.

new5244의 이미지

Linux password option 관련 질문입니다.

Redhat 계열 배보본 설치 과정중에

shadow 사용,
md5 사용
ldap 사용
....
등... 패스워드 관련해서 설치시 여러가지 옵션을 지정할 수 있는데..

혹시 현재 시스템에 어떤 option 이 적용되었는지 알수 있는
library 함수가 있는지요?

gyxor의 이미지

c++ 문자열 입력시 버퍼에 '엔터키'값이 저장되는 형태에 관한

#include<iostream>
#include<cstring>
using namespace std;

int main()
{
	char data[10];
   	char ch;

	cin.get(data,10);
 
	ch = cin.get();
	cout << "a";
	cout << ch;
	cout << "b";
	
	ch = cin.get();
   	cout << ch;
    return 0;
}

어셈블리어를 공부하다보니까..
문자열 입력시에 [엔터키]의 경우 누르면 0dh(캐리지리턴) 0ah(라인피드) 로.. 순서대로
입력시킨다는것을 알게 되었습니다.

첫째질문..

flatony의 이미지

atoi를 itoa로 만들고자할때

atoi로 char *를 int형으로 바꿔서 사용한후에

다시 char *로 바꾸려고 하는데 itoa가 없어서

int형의 변수를 (char *)로 형변환 했는데,,,,,안돼네요,,,

도대체 어케 해야하는건지,,,,누구 아시는분 없나요????

litwind의 이미지

현재 프로세스에서 연 파일을 알고 싶습니다.

현재 제가 만든 프로세스에서...

이 놈이 나름대로 데몬 프로그램인데..

신나게 잘 돌다가 한 3시간 쯤 지나면..

세그멘테이션 폴트와 함께..

too many file opened..

라는 에라를 출려하네요~

디버그 할려고 해도~ 고치고 에러 나는 거 함 보려면..

3시간을 기다려야 되니.. -_-;

하핫~ fclose() 도 꽤나 열심히 해줬는데 저런

메세지가 뜨네요~

그래서 어떤 파일들이 현재 열려있어서 저런 메세지가 뜨는지

알고싶습니다.. 도움주세요~ ^^

cjy1126의 이미지

pthread 죽이는법?

ping를 pthread로 작성하였습니다.

send와 receive 2개의 쓰레드가 있는데, send가 죽으면서 recvfrom중인 receive 쓰레드를 죽입니다.

문제는 지금까지 pthread_detach 로 죽이는줄알고 썼는데... ping을 여러번 반복하니까 한번보내고 for문에서 돌아가는 수만큼 받네요. -_-;

recvfrom 쓰레드가 계속 살아있어서 그런가 같은데, 어떻게 죽여야하나요?

폴링은 사용하면 안되고, 꼭 block이 되야하거든요.

답변 부탁드리겠습니다.

sunbee의 이미지

C(cgi) 에서 세션의 원리가 어떻게 되나요?

쿠키는 http 헤더에 덧붙여서 보내어 지는데, 세션은 서버에 저장되자나여..

php가 C언어로 만들여 졌기 때문에 php를 예로.. php에서 세션을 생성하면 /tmp에 세션 파일이 만들어 지던데요..

C(cgi)에서는 세션을 제가 직접 만들어야 합니까? 아님 그런 라이브러리가 있습니까?

leolo의 이미지

CGI의 퍼미션에 관한 질문..

지금 CGI로 웹을 구현하고 있습니다.
그런데, 문제가 생겼습니다.
바로 퍼미션에 관한 문제입니다..
웹서버는 thttpd를 사용하는데요..
문제는 cgi 파일을 컴파일 할때..
chmod u+s xxx.cgi
로 퍼미션을 주었기 때문에
보안에 취약 한 걸로 알고 있습니다.
이를 해결 할려면 어떻게 해야하는지 알려주세요..
부탁드립니다..
그리고, HTML파일의 퍼미션을 744로 하지 않으면
실행이 되질 않는데.. 이유가 궁금합니다..
사용자가 실행능력을 가져야.. html 파일이 수행되는지...

khaic0c0의 이미지

rand() 함수에 의한 중복값 처리 어떻게 해줘야 될까요?

#include <stdio.h>

int main(void)
{
        int test,result;

        srand( (unsigned)time( NULL ) ); //rand()함수에 초기값을 첨부터 주기위한 srand 함수 사용.

        for( test=1; test<=6; test++ )
        {
                result = rand()%45 + 1;
                printf( "LOTTO  %d jari ==> %d \n",test,result );
        }
        return 0;
}

이런 소스가 있다고 할때 1부터 45까지는 랜덤하게 숫자를 잘 뿌려주지만,

페이지

프로그래밍 QnA 구독하기