프로그래밍 QnA

trymp의 이미지

boost library 를 설치할 때 시스템에 적합한 boost 버젼은 무었인가요?


개발 환경은 linux fedora 64bit 를 사용중이고요

/lib/libc-2.16.so
/lib/libc.so.6 -> libc-2.16.so
 
/lib/libstdc++.so -> libstdc++.so.6.0.16
/lib/libstdc++.so.6 -> libstdc++.so.6.0.16
/lib/libstdc++.so.6.0.16

위와 같은 libc 버젼을 사용중에 있습니다.
boost version 이 다양하던데요. 어떤 버젼이 제 시스템의 libc 와 잘 호환되는지 궁금합니다.

그냥 최상위 버젼 깔아도 문제가 없는지 ?
호환성 문제가 생기지 않을지?

고수님들의 조언 부탁드립니다.

rkdckddn77의 이미지

heartbeat나 다른 방법을 통해서 3개의 장비를 이중화하고 싶어요.

안녕하세요~ 요즘 이중화때문에 골치가 아프네요.

2개의 장비를 이용해서는 heartbeat나 소켓을 통해서 Active/Active, Active/Standby는 구현할수 있습니다.

heartbeat나 다른 방법을 통해서 3개의 장비를 이중화를 구성하려고합니다. 구성은 Active/Active/Standby나 Active/Standby/Standby로 하고싶어요.

찾아봐도 이중화에 3개의 장비를 사용하여 구성하는 방법은 아예 없더라구요.

그래서 heartbeat로 시도를 해보았습니다.

저는 Virtualbox로 가상 장비 3개를 구성했습니다.

사양은
OS : Redhat 6.3 64bit
RAM : 2GB
HDD : 20GB
랜카드 : eth0,1,2,3

먼저 Heartbeat로 해봤는데(Active/Active/Standby)로 구성하려고 파일을 수정했습니다.
2개와 3개는 다른거같아요. 액티브가 2개가 될지는 모르겠는데 일단 해보았습니다.

ha.cf파일

wflore의 이미지

다중 클라이언트 접속 후, 값 반환 문제

안녕하세요
현재 소켓 통신에 대해 공부중인 학생입니다.

현재 서버에 3개의 클라이언트가 접속하여,

3개의 클라이언트가 주는 int 값들을 서버에서 합하고,

서버에서 다시 반환해주는 코딩을 짜고 있습니다.

예로,

client1 ->2
client2 ->4
client3 ->6

값을 보내면,
서버는 12를 각 client1,2,3한테 반환하는 프로그래밍입니다.

소스코드 내용은

main 함수에서

'int cli_sockfd[3];'

로, 3개의 소켓 fd 값을 받아놨고요.

'pthread_t thread_t[3];'

다중 클라이언트 접속을 위해, Thread id 받는 인자를 3개 만들어두었습니다.

서버에서 값을 반환할때는,

trymp의 이미지

정규표현식을 사용할 때 regex_t 가 thread safe 한가요?

Main thread
  regex_t	preg;
  regcomp(&preg, exp_str, REG_EXTENDED | REG_NEWLINE);
 
 
Sub threadA
  regexec(&preg, match_str1, 0, NULL, 0);
 
Sub threadB
  regexec(&preg, match_str2, 0, NULL, 0);

위와 같이 Main thread 에서 regex_t handler 를 미리 컴파일해 놓고

sub thread A와 B 가 같이 사용할 때,

side effect 가 생기거나 버그가 생길 확률은 없나요?

regex_t 를 공유해서 쓸 때 thread safe 상 문제가 없는지 궁금합니다.

고수님들의 조언 부탁드립니다.

ponicon3의 이미지

#define 사용 시 멤버 변수를 for문 인자로으로 받을 수 없나요?

다음과 같은 코드는 정상 동작 합니다.
#if 1
#define INT_i(n) int i##n = n;
#define SUM(res, n) (res) += i##n
#define PRINT(n) printf("i%d = %d\n", n , i##n)

int main()
{
int res=0;
int i;

for(i=0; i<2; i++)
{
INT_i(i);
PRINT(i);
SUM(res,i);
}

printf("결과 : %d\n", res);

return 0;
}
#endif

**실행결과**
i0 = 0
i1 = 1
결과 : 1

leeki07의 이미지

대용량 파일의 내용은 살리고 용량은 줄이는 법

계산기에 자동 저장되는 error.log가 1Gbyte이상이 되어 있음을 발견하였습니다.
완전히 지우기는 부담스럽고 내용만 줄이고 싶어서 vi로 열어 보았으나
수분을 기다려도 열리지가 않네요.
최근 log는 남기고 용량을 줄이고 싶은데 방법이 없을까요?

tail -n 500000 error.log > gomi
cat /dev/null > error.log
cat gomi >> error.log

요렇게 해도 될까요???

ivory0321의 이미지

중위표기식을 후위표기식으로 변환

#include
#include
#include
using namespace std;
stack s;
char print[99999];
int i=0;
int precedence(int op){
if (op == '(') return 3;
if (op == '+' || op == '-') return 1;
if (op == '*' || op == '/') return 2;
else return 0;
}
int cal(char a){
if(a=='('){
s.push('(');
}
else if(a==')'){
while(s.top()!='('){
print[i]=s.top();
i++;
s.pop();
}
s.pop();
}
else if(a=='+'||a=='-'||a=='*'||a=='/'){

dudrl0944의 이미지

회사에서 어떻게 작업하시는지 이야기를 듣고 싶습니다.

현재 다니시고 계시는 회사에서 주로 무엇을 어떻게 작업하시는지 알고 싶습니다.
번거롭더라도 간단하게 알려주시면 감사하겠습니다.

슈퍼공돌이의 이미지

세마포어 기초.. 질문입니다.

안녕하세요.. C 언어로 세마포어를 공부하고 있는 학생입니다.
지금은 두 쓰레드를 생성하여서 producer, consumer구조를 만들고 있습니다.
결과가 좀 생각한것과 달라서, 조금 당황 스러워서 질문을 올리게 되었습니다.
mutex는 1, full은 0으로, empty는 100으로 초기화하였습니다.
저는 producer하고 consumer가 랜덤하게 호출될줄알았는데
producer 100번 consumer 100번 번갈아 호출되더군요....
producer에서 sem_post를 호출하면 다른 쓰레드인 consumer로 도중에 스위칭되어야하지않나요?
왜 100번 호출되어야 consumer가 호출되는지 이해가 안갑니다 ㅠㅠ
조언좀 부탁드립니다.

Producer부분

wflore의 이미지

멀티쓰레드 C언어 소켓 프로그래밍 문의

안녕하세요
이번에 C언어로 다중 클라이언트 접속 가능한 서버를
Thread를 혼자 공부 후, 코딩을 짜고 있는 학생입니다.

동작과정은
서버는 3개의 클라이언트로부터 int 값을 1개씩 받고,
받은 int 값을 result 변수에 모두 합하여,
각 클라이언트로 동시에 다시 반환해주는 것을 연습하고 있습니다.~

-서버의 내용-

#include
#include
#include
#include
#include
#include
#include
#include

#define MAXLINE 1024

int result;
pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER;

페이지

프로그래밍 QnA 구독하기