프로그래밍 QnA

mushim의 이미지

이미 만들어진 socket 연결을 다른 프로세스로 전달하는 방법이

fork 해서 자식 프로세스에게 전달하는 방법말고,

다른 프로세스에게 socket 연결을 전달할 수 있는 방법이 없나요?

maddog의 이미지

CYGWIN에서 stdio에 대해 iostream을 사용하면 링크에러가...?

WIN32에서 CYGWIN을 사용하고 있습니다. 뭐, 다양한 목적으로 사용하고
있는데요, 이상한건 C++로 컴파일할때 iostream을 사용하면 꼭 링크에러가
난다는 것입니다. 덕분에 printf를 여전히 사용하고 있습니다. (뭐, 그런 이유가
아니래도 printf를 선호하기는 하지만요.)

원인이 뭘까요...? 참고로 CYGWIN은 거의 모든 옵션을 다 설치했습니다.
(X윈도서버도 돌아갑니다. 이건 좀 놀랬죠. 헐..) 하드도 제법 차지하죠.
되야 되는 넘이 안되니 참 깝깝하네요. 내가 모자란 탓인지...

seed의 이미지

RSA공개된 소스있나요?

RSA 공개된 소스있는지요...?
RSA가 라이선스가 풀렸다는데 여기져기 뒤져봐두 못찻겠네요 :cry:
씨로구현한거요...
먼저 감사드립니다. :)

최종호의 이미지

Solaris, gcc에서 dlopen로 shared object 붙일 때 오류

서버 프로그램이 하나 있고,
서버 프로그램에서 사용하는 각 모듈을 그때그때 사용자의 요청이 있을 때마다 동적으로 생성해서 dlopen과 dlsym을 이용해서 붙이는 구조로 돌아가는 프로그램을 짜고 있는 중입니다. 환경파일을 통해 초기에 몇몇 모듈들은 서버와 같이 올라가고요. server_func()는 서버 프로그램에 정의되어 있는 함수입니다.

server:
server_func()

module1.so
call server_func();

module2.so
call server_func();

...

각 모듈에서는 서버에 있는 루틴을 호출하고 있는 부분이 있는데,

seed의 이미지

DES에서 여러가지 변환테이블은 고정된것인가요

이틀동안 헤메다가 겨우 DES알고리즘을 이해했습니다... :cry:
그런데 궁금한건요...
알고리즘에 보면 여러가지 변환테이블이 나오는데요..
이런테이블들이 고정된것인지...
아니면 구현에 따라 바뀔수있는건지 궁금합니다.
예를들어 32비트를 48비트로 확장하는거라든지 s-box, p-box 이런거요...
그럼 먼저 감사드립니다. ^^;

swhong의 이미지

malloc에서...

[code:1]#include <stdio.h>
#define MAX 1024

main()
{
char string[MAX];
char *dynstring;
int i,j;

for (i = 0; i < MAX; i++)
string[i] = '\0';

for (i = 0; i < MAX; i++)
{
j = getchar();
if (j == EOF)
break;
string[i] = (char)j;
}

dynstring = (char *)malloc(1); // 요부분....

strcpy(dynstring, string);

printf("\nYour text was: %s\n", dynstring);

rockme의 이미지

소켓라이브러리 함수중에 recv()함수에 대해서

소켓을 이용한 클라이언트/서버소스를 보니 의문점이 있어서 글을 올립니다.

클라이언트 쪽에서 send()로 4096바이트를 한번에 보내고 서버쪽에서는 recv()를 사용해서 1024바이트씩 루프를 돌면서 받는 부분이 있습니다.
왜 송신 할때는 4096을 한번에 보내면서 수신할 때는 1024바이트씩 나누워서 받는 것인지 궁금합니다.

송신 할 때 어플리케이션에서 큰 데이터를 보내면 tcp에서 mtu에 맞게 조정되어 보내게 되기 때문에 수신측에서는 이것을 감안해서 위와 같이 작게 나누어서 받는 것입니까?

hammer의 이미지

signal과 socket

시그널 대기하는 sigprocmask를 써서 제가 짜고 있는
프로그램에 적용할려고 하니
에러가 나더군요. (accept부분에서 Interupted System call이라고..) 소켓 연결도 하지 않았는데 말입니다.
짤막한 저의 프로그램을 소스를 보여드리면..

[code:1]int main()
{
int i = 0;
struct sigaction intsig, usrsig;
.........
........

usrsig.sa_handler = sig_usr;
sigemptyset(&usrsig.sa_mask);
usrsig.sa_flags = 0;

intsig.sa_handler = sig_int;
sigemptyset(&intsig.sa_mask);

epcube의 이미지

inode에 관한 질문...

리눅스커널의 이해란 책을 보다가 궁금한게 생겼습니다.

각 블록 그룹이 4096개의 inode를 포함할 수 있고,
inode가 13021번이라면 이 inode는 디스크상에서
3번째 블록그룹에 속하고, disk address는 inode table의
733번째 엔트리에 저장되어 있다고 책에 나옵니다.

그런데 13021을 4096으로 나누면, 몫이 3이고 나머지가 733입니다.
그러면 이 inode는 4번째 블록그룹에 속하는게 맞지 않나요??

왜 책에서 3번째 블록그룹이라고 했는지 이해가 안갑니다.

young93의 이미지

gcc로 링크 중 에러 : undefined reference to `xxx

다른 OS에서 다른 컴파일러로 만들었던 프로그램을 리눅스로 포팅중입니다.
프로그램은 여러 블럭으로 이루어져 있고
각 블럭을 컴파일하면 라이브러리 파일을 생성합니다.
마지막에 그 라이브러리를 링크하여 실행파일을 만들죠.

컴파일까지는 잘되는데 링크를 하면
undefined reference to `xxx' (xxx는 함수명 또는 전역변수명)
라는 에러가 수십개씩 나오네요.

분명히 다른 블럭의 라이브러리(*.a)에 있는 함수인데, 없다고 그럽니다.
라이브러리를 만들지 않고 그냥 오브젝트 파일(*.o)을 링크하면 잘 됩니다.

페이지

프로그래밍 QnA 구독하기