프로그래밍 QnA

kj0604의 이미지

Linux환경에서 sleep함수와 반복문

Gants chart에서 process가 수행되는 순서를 눈에 보이게 출력하는
프로그래밍 과제를 하고있습니다.
각 출력마다 1초 텀을 두고 한줄에 쭉 출력되게 하려고 하는데
아래와 같은 문제가있네요

예를들어서
while(1)
{
printf("Hello");
sleep(1);
}
이건 출력이 안되고

while(1)
{
printf("Hello\n");
sleep(1);
}
이건 출력이 정상적으로 되네요

원래 안되는게 정상인가요?

rlqja6266의 이미지

[완료]소켓 프로그래밍, 바이너리 파일 전송

단순한 소켓을 이용한 메세지 전송 클라이언트인데요,

redirection을 이용해서 바이너리 파일을 입력으로 넣어주면

출력에서 많은 부분이 사라지네요. 직접 emacs로 열어비교해보면, ^@인 부분들이 사라지는 것 같은데

무엇이 문제인가요?

바이너리 파일은 fread()를 사용하면 되는것 아닌가요?

while(1)
{
int i = 0;
memset(message, 0, BUFSIZE);

CH331의 이미지

mutt 사용해보신분??

제가 이번에 녹취된 파일이 생기면 자동으로 그 파일을 첨부하여 메일을 보내려고 합니다.

이때 첨부파일 기능을 편리하게 사용할 수 있는 mutt를 사용하려고 합니다.

그럼 아마도 소스에

sprintf(command , "mutt -a \"녹취파일\" -s \"메일제목\" 메일주소" );

이런식으로 될듯합니다.

그러나 파일만 보낼것이 아니라 메일에 내용도 작성하려고 합니다.

좀 찾아보니

"mutt -a \"녹취파일\" -s \"메일제목\" 메일주소" < 메일내용이기록된파일

이런식으로 하면 내용이 첨부 된다는데 그럼 제가 이 방식을 쓸려면

메일을 보낼때마다

해당파일을 생성해서

년/월/일/시/분/초 에 녹취된 파일입니다. 라는 것을 파일에 쓰고

그 파일을 메일보낼때 추가해줘야하는 형식이 되겠더라구요.

adison777의 이미지

[완료]OS 커널을 잘 모르겠습니다.

공부하다 제 이해력에 이렇게 좌절합니다.

제가 책을 보고 느낀거는

CPU에서 연산을 하려면 결국 커널을 거쳐야하는데

커널을 가기 위해선 소프트웨어 경우 연속된 시스템콜(?)로 구성되고

그렇게 구동된다라고 이해하고있습니다.

그리고 커널 부분도 궁금한데요.

질문은

1. 어플리케이션은 API로 작성되도 이게 결국 시스템콜로 다 일일히 전환되어서 CPU에서 처리하는 건가요.

2. 라이브러리는 그럼 어떤 개념인가요? 결국 다 시스템콜로 구동된다면 라이브러리를 통해 오버헤드를 줄인다라는 개념을 모르겠어요.

3. 쓰레드를 cpu안에 쓰레드 처리기로 보내기 위해 유저레벨 쓰레드를 커널 쓰레드로 바꾸는가??

adison777의 이미지

OS 아예 모르겠어요..


공부하다 제 이해력에 이렇게 좌절합니다.

제가 책을 보고 느낀거는

CPU에서 연산을 하려면 결국 커널을 거쳐야하는데

커널을 가기 위해선 소프트웨어 경우 연속된 시스템콜(?)로 구성되고

그렇게 구동된다라고 이해하고있습니다.

그리고 커널 부분도 궁금한데요.

질문은

1. 어플리케이션은 API로 작성되도 이게 결국 시스템콜로 다 일일히 전환되어서 CPU에서 처리하는 건가요.

2. 라이브러리는 그럼 어떤 개념인가요? 결국 다 시스템콜로 구동된다면 라이브러리를 통해 오버헤드를 줄인다라는 개념을 모르겠어요.

3. 쓰레드를 cpu안에 쓰레드 처리기로 보내기 위해 유저레벨 쓰레드를 커널 쓰레드로 바꾸는가??

darkspace1의 이미지

pthread 로 fibonacci 만드는데 segmentation 오류가 자꾸 나네요

13 번째 까지 잘 나오다가
14 번째 값에서 바로 오류가 납니다
그렇게 큰 숫자도 아닌데 오류가 나니 너무 당혹스러운데 해결법좀 알려주세요 ..

#include
#include
#include

void *runner(void *param);

int main(int argc, char** argv)
{
long *final_result;
int fibo_num;
fibo_num = atol(argv[1]);

pthread_t tid;
pthread_create(&tid,NULL,runner,&fibo_num);
pthread_join(tid, (void**)&final_result);
printf("결과 : %lu 입니다.",*final_result);

return 0;
}

sanha777의 이미지

Java Pattern Matcher 관련

점진적인(?) 매칭을 효과적으로 하는 방법을 찾고 있었는데요.
이를테면,
패턴이 ABC 라고 할때,
입력이 A, B, C 세번 들어오고 각각에 있어 입력당시 모두 매칭되었는지 (추가 매칭가능한지 포함), 매칭중인지, 실패한지를 알기 위해서.
다음과 같이 가능합니다.

Pattern p = Pattern.compile("ABC?");
StringBuilder sb = new StringBuilder();
Matcher m = p.matcher(sb);

sb.append("A");
m.reset(sb);
boolean 전체매칭성공 = m.matches();
boolean 계속매칭가능 = m.hitEnd();

sb.append("B");
m.reset(sb);
boolean 전체매칭성공 = m.matches();
boolean 계속매칭가능 = m.hitEnd();

각각 결과를 출력한다고 했을때 실행결과는:

false, true
true, true

dltkddyd의 이미지

클래스 템플릿 전방선언을 어떻게 해야 하나요?

대략적으로 다음과 같은 소스코드가 있습니다.

namespace MySpace {
ostream& operator<<(ostream& out, MyMap& ref) {
//코드
return out;
}
};

template<typename K, class V>
class MyMap {
public:
//코드
friend ostream& MyMapSpace::operator<<(ostream& out, MyMap& ref);
//코드
};

이렇게 하고 컴파일 하면 컴파일 에러가 출력됩니다. MySpace에서 ref가 객체를 제대로 받지 못하고 있습니다. 아무래 MyMap 클래스 템플릿을 전방선언 해주어야 할 것 같은데, 어떻게 전방선언을 해줘야 하나요? 저는 MySpace 앞에 아래와 같이 전방선언을 해봤는데, 계속 컴파일 에러가 납니다.

유훈이의 이미지

3g 환경(사설ip)에서 UDP 통신을 어떻게 가능하게 만들 수 있나요?

안드로이드 프로그래밍 중입니다.

3g로 인터넷을 연결하게되면

각 통신사에서 할당해주는 사설ip를 받게 되어지는데요~

이렇게 되니 UDP 통신을 일반적인 방법으론 할 수가 없더군요..

UDP를 위해 12121포트로 소켓을 연다해도~

통신사측이 공인아이피의 12121포트를 제 폰으로 포트포워딩을 해주는것이 아니니

외부에서 공인아이피:12121 로 UDP패킷을 보내봤자 제 폰까지 도달을 하지 못합니다.

제가 알기론 카톡이 UDP를 사용하여 구현된걸로 알기에 분명 해결법이 있는것 같은데

아무리 뒤져봐도 해결방법이 없군요... 혹시 아시는 분 계시면 도와주세요!!!

(*평소엔 생각 못했는데;; 사설ip로 포트포워딩이 안된 포트를 사용하여 TCP 서버의 소켓에

바인딩을 해버리면~ 소켓끼리 통신이 가능하지 않습니까? 이것도 어떻게 이루어지는건지

궁금합니다. 사설ip의 해당 포트까지 어떻게 binding이 되었을까요? 이게 왠지

UDP통신의 답일것 같은데...)

유훈이의 이미지

3g 환경에서 UDP 통신을 어떻게 해야할까요?

안드로이드 프로그래밍 중입니다.

3g로 인터넷을 연결하게되면

각 통신사에서 할당해주는 사설ip를 받게 되어지는데요~

이렇게 되니 UDP 통신을 일반적인 방법으론 할 수가 없더군요..

UDP를 위해 12121포트로 소켓을 연다해도~

통신사측이 공인아이피의 12121포트를 제 폰으로 포트포워딩을 해주는것이 아니니

외부에서 공인아이피:12121 로 UDP패킷을 보내봤자 제 폰까지 도달을 하지 못합니다.

제가 알기론 카톡이 UDP를 사용하여 구현된걸로 알기에 분명 해결법이 있는것 같은데

아무리 뒤져봐도 해결방법이 없군요... 혹시 아시는 분 계시면 도와주세요!!!

(*평소엔 생각 못했는데;; 사설ip로 포트포워딩이 안된 포트를 사용하여 TCP 서버의 소켓에

바인딩을 해버리면~ 소켓끼리 통신이 가능하지 않습니까? 이것도 어떻게 이루어지는건지

궁금합니다. 사설ip의 해당 포트까지 어떻게 binding이 되었을까요? 이게 왠지

UDP통신의 답일것 같은데...)

페이지

프로그래밍 QnA 구독하기