프로그래밍 QnA

alwaysN00b의 이미지

char * 과 char ** 의 수정

제목이 좀 이상한데...

그동안 '잘' 이해했다고 믿은 포인터가 궁금증을 낳게 하는군요..

int foo1(char *a){
    a = malloc("foo1");
    if(a != NULL) return 0;
    else return -1;
}

int foo2(char **a){
    *a = malloc("foo2");
    if( *a != NULL ) return 0;
    else return -1;
}

위 두 함수는 서로 다른 것인가요?
gurugio의 이미지

PXA270보드에 LCD 포팅에 관한 질문입니다.

LCD에 흰줄이 생기거나 전부 하얗게 변하고 로고가 안떠서
pxafb.c 소스를 고치고 있습니다.

Toshiba의 LTM04C380K TFT-LCD를 사용하고 있는데요
메뉴얼에의 타이밍 차트를 봐도
LCD 컨트롤러 레지스터의 HSW, BLW 같은 비트 필드들에
어떤 타이밍의 값을 써주어야 할지를 잘 모르겠습니다.

예를 들어 HSW는 Horizontal Sync Pulse Width라는 필드인데요
타이밍 차트 그림에는 가로 줄이 그려지는 시간이 t3로 표시되어 있고
이 값이 31.5~36.5 라고 써있습니다.
이 값이 정말 HSW 비트에 해당되는 값인지를 잘 모르겠습니다.

alwaysrainy의 이미지

ip 패킷의 전송 딜레이를 임의로 조절?

현재 두대의 피씨에서 전송 속도를 다르게 하여 ip 패킷을
전송해야 합니다. 두 피씨간의 latency는 보통 1ms 정도
나오는데요.. 이를 50ms 혹은 100ms로 조절하여 전송할 수 있는
방법이 있을까요? 제 생각에는 수신되는 ip 패킷에 응답할 때
정해진 딜레이를 준 후에 응답하면 될 듯 한데.. 관련 자료를
찾을 수가 없네요..
이를 해결할 수 있는 관련 자료 부탁드립니다.

rndrmagkqslek.의 이미지

ext2 fs에서 indirect block에 관해서 질문입니다.

ext2fs에서요, inode table에서 i_block의 13번째 필드는 indirect block이 되는데요, fdd에 내용을 쓴 후 inode table중 i_block을 덤프해 보면
i_blodk[0] = 45
i_blodk[1] = 46
i_blodk[2] = 47
i_blodk[3] = 48
i_blodk[4] = 49
i_blodk[5] = 50
i_blodk[6] = 51
i_blodk[7] = 52
i_blodk[8] = 53
i_blodk[9] = 54
i_blodk[10] = 55
i_blodk[11] = 56
i_blodk[12] = 57
i_blodk[13] = 0
i_blodk[14] = 0

이 나옵니다.

13번째 필드가 indirect block이니깐, 57번째 블록을 덤프해 보면

0 0 0 0 58 59 60 ... (숫자 하나는 4바이트를 덤프한 것입니다>)

moonzoo의 이미지

공유메모리 속도에 대해서..

공유메모리는 빠른 속도를 보여준다는 글을

읽었습니다.

FILE IO와 공유메모리 사용간에,

얼마나 속도차이가 있는가에

대해 아시는 분 있나요?

공유메모리도 결국 DISK에 저장되어서 DISK IO가 일어나지

않나요? 그렇다면 일반 FILE IO (read,write..)와

크게 속도차이가 나지 않을것 같다는 생각이 듭니다.
(system call이 있지만..disk io보단 상대적으로 적은 비용이라
고 생각해서요)

이에 대한 의견 부탁드립니다.

superkkt의 이미지

non-block socket이 일반 socket보다 속도가 느린가요?

block socket을 사용할때는 랜상에서 초당 10메가의 속도로 파일 전송이 되었습니다. 그런데 non-block으로 바꾸고 EAGAIN or EWOULDBLOCK 에러를 리턴할때 못보낸 데이터를 재전송해주는 코드를 추가했더니 초당 5~6메가 정도밖에 속도가 안나오네요.

데이터 재전송 해주는 코드는 다시 파일을 읽는게 아니라 메모리에 있는 내용을 다시 보내주는거라서 특별히 오버헤드가 발생할 부분은 없습니다. 다만 한번에 보낼걸 두번에 보내는거 빼고는요..

그리고 non-block에서 파일전송시 EAGAIN을 리턴할때는 send buffer에 write하는 속도를 네트워크가 받쳐주지 못해서 그런건가요? 그렇게 보기엔 EAGAIN 나올때마다 write 된 사이즈가 일관되게 나오는게 좀 이상해서요.. 예를들어 write에 8192바이트를 요청했는데 5142바이트만 쓰고 리턴하는것처럼 항상 일정한 값만 쓰고 리턴을 합니다.

ykish의 이미지

[질문] cygwin에서 컴파일한 라이브러리, VC에서 사용하기

처음엔 정적라이브러리를 붙여볼려고 했더니 안되고, 동적라이브러리도 안되네요.
VC에서 만든 dll을 cygwin에서 사용하는것은 검색해서 보았는데,
저는 cygwin에서 만든 라이브러리를 VC로 만든 프로그램에 붙이고 싶습니다.(가능하면 정적라이브러리...)
어케해야 될까요?

hermian의 이미지

unpv12e의 소스 중 sock 프로그램을 sun에서 컴파일하기

[code:1]$uname -a
SunOS solomon 5.8 Generic_108528-15 sun4u sparc SUNW,Ultra-Enterprise-10000

$ gcc -v
Reading specs from /usr/local/gnu/2.95.2/lib/gcc-lib/sparc-sun-solaris2.6/2.95.2/specs
gcc version 2.95.2 19991024 (release)

$ make
gcc -g -O2 -D_REENTRANT -Wall -D__EXTENSIONS__ -c loopudp.c -o loopudp.o
loopudp.c: In function `loop_udp':
loopudp.c:106: `iov' undeclared (first use in this function)
loopudp.c:106: (Each undeclared identifier is reported only once
loopudp.c:106: for each function it appears in.)
loopudp.c:108: `msg' undeclared (first use in this function)

bosub의 이미지

socket을 이용한 데이터 전송 문제

소켓을 이용한 데이터 전송 문제 입니다.

클라이언트가 데이터를 보내고 읽기를 준비하는데요

서버에서 데이터를 받고 받는 구문을 마치지 못하고 계속 받을려고 하네요

무엇이 문제인가요?

클라이언트 소스
[code:1]20 int main(int argc, char *argv[]) {
21 struct sockaddr_in servaddr;
22 int s, nbyte;
23
24 char *buf1 = (char *)malloc(sizeof(char)*512);
25 char *buf = (char *)malloc(sizeof(char)*1024);

kuaaan의 이미지

[QUIZ] ++ 연산자 관련...

#include <kldp.h>
int main()
{
   int i = 0;
   printf(" %d %d %d\n", i++, i++, i++);
}

퀴즈입니다.
위의 코드를 실행한 결과가 어떻게 될까요?

방금전에 돌려보고서 깜짝 놀랐습니다.
곰곰히 생각해보니 왜그런지 이해는 가는것 같기도 하고... ^^;;

※ Visual Studio에서 컴파일한 경우와 gcc 에서 컴파일한 경우가
결과가 틀린것 같습니다.

페이지

프로그래밍 QnA 구독하기