프로그래밍 QnA

jee89의 이미지

extern void func(); 초보질문입니다.

extern void func();
헤더파일에 보면 extern된 프로토타입이 간혹보이는데요.

func함수를 다른 모듈에서 호출해서 쓸때,
extern void func(); 형식대신에
void func(); 같이 extern을 빼고 써도 잘 작동하는데
굳이 extern을 붙여서 쓰는 이유가 있나요?

a287848의 이미지

잘은 모르지만 배우는 마음으로 한마디 써봅니다.

형변환에 관한 내용인것 같습니다.
일단 scanf함수 로얼마를 넘겨주셨는지 글만으로는 잘 모르겠지만
제가 볼땐 몫이되는 c 를 float 으로 선언한것과 정수상태로 나눈차이 같네요
^^ 도움이 되셨는지 모르겠네요..

prog4444의 이미지

[질문] printf 문에 대한 질문입니다. 이해가가지않네요

아래 두개의 비슷한 소스를 보면 a/b 의 값을 구하고 몫과 나머지를 출력할때
소스1 에서는 a/b 의 값을 바로 입력했고 소스 2 에서는 미리 문장을 선언하고 그 문장을 사용했습니다 왜 아래와 같은 차이가 나는지 도통 모르겠네요..

소스1

#include <stdio.h>

main()
{
        int a,b;
        printf("Insert number ex(1,2) : ");
        scanf("%d %d",&a,&b);
        
        printf("%d/%d=%f\n", a,b,a/b);
}
결과 2.1211324(2.0이 딱 안떨어집니다.)
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에 맞게 조정되어 보내게 되기 때문에 수신측에서는 이것을 감안해서 위와 같이 작게 나누어서 받는 것입니까?

페이지

프로그래밍 QnA 구독하기