프로그래밍 QnA

litwind의 이미지

30분 또는 1시간 마다 메일을 보내는 프로그램을 만들려고 합니

메일 보내는 모듈은 완성했는데...

30분이나 1시간 정도 마다 계속 메일을 주기적으로

보내는 프로그램을 만들려고 하는데..

그냥 sleep(3600) 이렇게 하면 되는지

아니면 더 나은 방법이 있는 지 궁금합니다.

purewell의 이미지

ioctl의 FIONREAD로 알아온 바이트 크기와 recv

소켓에서 데이터를 받아오기 전에 ioctl의 FIONREAD로

얼마만큼의 데이터를 읽을 수 있는지 알 수 있습니다.

그렇다면 그 데이터크기만큼 recv 하면 확실히 받아 오는 것입니까?

즉, for/while 따위로 다 받아질 때까지 삽질 안 해도 되는 것인지요?

[code:1]
unsigned long nRead;
int nRes;
char cBuff[SOMEBIGNUMBER]

nRes=ioctl(csock, FIONREAD, &nRead);

...

recv(csock, cBuff, nRead, 0); // HERE!!
// recv로 제대로 받을 수 있을지 알 수 없기 때문에
// 보통 for/while을 써서 원하는 데이터만큼 다 받기

stratus의 이미지

dcethreads-2.0.2 컴파일 하신 분~~ 이것 좀 봐주세요~^^;

dcethreads-2.0.2.tar.gz 를 받아서 인스톨하려고 하는데,
컴파일 도중 아래와 같은 오류가 발생하는데 원인 좀 알려주세요.
(RedHat 8.0 (2.4.18-14smp), gcc 3.2-7 환경입니다.)

configure 는 모두 default를 사용했고,
#./configure
#make

하였더니 warning을 에러처리 하면서 종료되길래,
warning option 없애주고
(./src/Makefile.in 을 아래처럼 바꿨는데, gcc 옵션을 맞게 한건지 ^^; )

AM_CFLAGS = -Wall -W -Werror -pipe
---> 이부분을 다음과 같이 바꿨어요~
AM_CFLAGS = -pipe

그리고 나서 다시 컴파일 했더니,

yc307의 이미지

문자열 처리에서여... 입력이 안되네요

소스 코드는 다음과 같습니다.

===============================================

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

char *compression(char *);

main()
{
char cue;
printf("압축(Compression), 종료(Exit) ?");
scanf("%c",&cue);
char message[100];
int len;


if (cue == 'c' || cue == 'C')
{
printf("압축할 문자열 >>> ");
fgets(message, sizeof(message), stdin);
len = strlen(message);
message[len-1] = '\0';
printf("\n압축된 문자열 >>> %s",compression(message));
}

김학수의 이미지

UDP 통신에서의 fork.

udp 통신 프로그램을 짜고 있습니다...
데이터를 받은 후 fork 를 하여 받은 데이터를 처리하고.. 처리하는 동안
새로오는 데이터도 물론 처리를 해야겠죠..

제가 만드는 대략적인 소스입니다..
여러가지를 빼서 간단하게 추리다 보니 이해가 안되는 부분이 있을지 모르나
대충 아 이렇게 흘러가는구나 하는 정도는 아시리라 믿습니당..

[code:1]
#include "all.h"

int task_no;
int sun_sock;
int web_serial;

main()
{
int ret;
int Pid;
char rbuf[512];

zini08의 이미지

파일의 사용여부를 알수 있는 방법이 있나요??

안녕하세요...
처음으로 글을 올려보는군요..^^

만약 소켓통신을 한다고 할때..
어떤 파일이 다 쓰인뒤에 그것을 전송을 할려고 합니다
그러니깐 다른 프로그램에서 쓰고 있는 도중에서는 그 열려진 정보를 알려주며..
접근을 막는거죠..
개념은 세마포어 비슷한데 자기 프로그램이 아닌 다른프로그램에서
그 파일을 열고 있는지 알려면...어떻게 해야 하나요??

sadrove의 이미지

다중 for문에서 빠져나가려면..?

예를 들어..

for(i=0; i<100; i++)
for(j=0; j<100; j++)
for(t=0; t<100; t++)
if(sum == 100)
break;

위와 같이 있을때요..
break;로는 for문 하나밖에 못 빠져나가는 걸로 알고 있는데..
이 for문 전체를 다 빠져나가고 싶으면 어케해야 할까요..?...
전 그냥 Goto문으로 했는데..웬지 더좋은방법이있을꺼 가타서..^^...

kn31232의 이미지

recv와 send..

소켓 통신에서 순차적으로 recv와 send를 하지 않고...

어느때고 recv와 send요청이 왔을때 사용 할 수 있도록 코딩 하려면 어떻게 해야 할까요....!?

보통 recv요청을 기다리고....recv했을때 send하고...이런식의 코딩만 한거 같네요....-_-;

요청이 들어왔을때 반응하도록 하려면 어떻게 해야하는지 궁금합니다...TT_TT

고수님들~~~!! ^^

sadrove의 이미지

C에서 화면을 지우려면..?

프로그램을 짤때요..

실행시키면 현재 프롬프트 다음에 프로그램이 실행되잖아요...

프로그램을 실행시키면 현재 화면을 클리어하고 실행되게 하고 싶은데..

그런 함수가있는건가요..?

아니면 쉘명령어를 프로그램상에서 실행시킬려면 어떻게해야 하는지..^^;;;

현재 리눅스를 쓰고 있습니다...언어는 C구요...

부탁드릴께요..^^...

날씨가 덥네여....후덥지근...ㅠ.ㅠ...

song의 이미지

int - &gt; char *....

구현한 string token함수는 구분자(char *) 를 받습니다.

ascii 4번을 구분자로 해줘야 합니다.

itoa 가 없어서 간단히
sprintf(get_int,"%d",toascii(4)); 이런식으로 버퍼에 담았습니다.

하지만 캐스팅이 되질 않는군요.

참고 함수 입니다.

char ** tokenize(const char *string, const char *delim, int *n)
{
char **res = NULL;
const char *nxt, *prev;
char *tmp;
int step = strlen(delim);
int i;

/* Check is there is something to tokenize */
tmp = str_clean(string);
if(!strcmp(tmp, ""))
{
*n = 0;
efree(tmp);

페이지

프로그래밍 QnA 구독하기