프로그래밍 QnA

kukuman의 이미지

solaris에서는 flock이 지원되지 않나요?

이상하게 man flock하면 떡하고 나오는데,,,

헤더 파일에 함수 원형이 없네요...
(/usr/include/sys/file.h)는 있는데 해당 file 내에
flock 함수 원형에 대한 정의가 없네요...

solaris 8이고 기본적인 설치만을 한 상태입니다...
(설치 CD로...)

purewell의 이미지

int를 클래스로...

얼마 전부터 그냥 쓰던 int girl;을

클래스로 좀 멋지게 짜서 class CLover로 만드려고 하는데,

그냥 int girl 때보다 메모리도 많이 먹고 접근 시간도 오래 걸려요.

게다가 갈 수록 소스는 스파게티가 되는 것 같아서... 정말 큰일이예요.

원본::

...
int girl=0;

girl+=simple_food;
printf("favor : %d\n", get_favor(girl));
...

수정하려고 하는 코드::
[code:1]
...

class CLover : public CHuman
{
private:
// 알 수 없음

protected:

iamsjkim의 이미지

[초보]채팅 프로그램에서 클라이언트쪽 키보드 입력처리에 관한

프로그램 초보 질문입니다..
리눅스 환경이고 gcc 컴파일 입니다..

클라이언트가 유저로부터의 키보드 입력을 select문에서 받아 적절한 function수행 후에 서버에게로 보내주면 서버가 그 메세지에 적절한 작업수행후 클라이언트에게 보내고, 클라이언트는 서버로부터 오는 메세지는 받아다가 유저에게 출력해주는 채팅 서버-클라이언트 프로그램과 유사한 프로그램이 필요해서 일단 채팅프로그램 비스무리한 코드를 작성 해봤습니다.

그런데 서버쪽 실행코드를 실행시켜놓고 클라이언트도 실행시킨 후에 클라이언트쪽 터미널에서 몇글자 친 다음에 엔터를 치면 일단 메세지는 대충 서버에게 전달이 되는것 같은데 서버에서 작업을 수행한 후 해당 클라이언트에게 send를 하면 클라이언트쪽에서는 아무 반응이 없습니다. -.-

nunobabo의 이미지

형변환과 퍼포먼스

odbc를 이용해C와 mssql을 연동하는 프로젝트를 하고 있습니다.

odbc에 정의된 필드의 형이 char는 UCHAR(unsigned char), int는 SDWORD(long int)로 되어 있어 거기에 따라 선언을 하고 코딩을 해왔습니다.

그런데 여기서 값을 가져 와서 다른 업체에서 제공되는 함수(내부를 볼 수도 없고 수정도 안됩니다.)에 인자로 넘겨 줄때는 char *형으로 넘겨 줘야 하는데
디비에서 가져온 UCHAR 형을 넘겨줄때 형변환을 해야 했습니다.
예를들어 submit((char *)arg1,(char *)arg2.....)이런식으로 26개의 함수 인자중에 5~6개 정도가 형변환이 되는데 디비에 쌓인 레코드를 처리할 때 마다 이 함수가 호출됩니다.

jaeoya의 이미지

시리얼 프로그래밍 에서...

시리얼 프로그램을 짜다가 문제가 생겨서 이렇게 글을 올려보네요..
프로그램 도중에 0x0D 라는 문자가 와야 그동안 버퍼에 쌓여있던 것을 읽어올수 있던데. minicom 이라는 프로그램은 0x0D 라는 문자 없이도 버퍼에 있던것을 그냥 읽어오던데.. 이렇게 종료문자가 없어도 수신이 된 데이터를 읽어오는 방법이 없나요... 제가 했던 소스를 올려드립니다.

int main()
{
int serial,result;
fd_set readfs,testfs;
int port=com1;
int size, i, num=0;
char *data="Hello\n";

eminency의 이미지

symbol이 하는 일이 뭔가요...?

strip하면 심볼이 제거되고 오브젝트 파일 크기가 확 줄어드는 걸로 아는데요.
그렇게 해도 그 오브젝트 파일을 링크하는 소스들은 컴파일 및 실행에 문제가 없는 것 같은데 그럼 심볼은 왜 만들어지는거죠..? ㅡㅡ;;

아, 여기서 오브젝트 파일은 공유 라이브러리를 의미합니다. .o파일들로는 strip해본 적이없어서...

goatee98의 이미지

컴파일러에 따라서 다음 문제가 생길 수 있나요

솔라리스 8, gcc 2.95.3에서 다음 코드가 문제를 일으키더라구요
Bus에러 나면서 코어덤프하고 죽던데..
다른 테스트환경에서는 문제가 발생하지 않았었거든요. 무엇때문일까요?

typedef struct {
    time_t sendtime;
} AAA;

main()
{
    struct tm tmp_time;
    AAA aaa;
    aaa.sendtime = time(NULL);
    tmp_time = *localtime(&aaa.sendtime); <-이부분에서 Bus에러발생
    return 0;
}
eminency의 이미지

java프로그램을 패키지로 만들 때 질문입니다...

이리저리 찾아봤는데 거의 다 윈도우 기준이고 jar파일로 만드는 데 대한 설명도 없더군요.
맨날 C만 하다가 자바 프로그램을 만들려니 원...ㅡ.ㅡ;;

우선 제 환경은 리눅스입니다. 유닉스에도 쓸 수 있어야 하기 때문에...
프로그램 자체는 다 만들어진 상태이고 JNI를 써서 C의 공유 라이브러리도 하나 있는 자바 프로그램입니다.

제가 궁금한 것은 두 가지인데요...

첫번째로 .class파일들을 jar로 압축한 뒤 그 jar파일을 $CASSPATH에 추가해 주었는데 계속 C 공유 라이브러리를 못찾는 UnsatisfiedLinkError가 나옵니다. System.loadLibrary("jni") 부분에서요. .so파일을 jar파일에 같이 넣어도 보았는데 마찬가지이고... LD_LIBRARY_PATH도 제대로 설정해 준 거 같거든요...

hwlee의 이미지

비트연산 질문

unsigned int a = 0xfedf

unsigned int b = 0xfcdf

--> 즉.. 이진수로 표현하면

a = 1111111011011111

b = 1111110011011111

여기서 보면 한 비트만.. 1 에서 0 으로 바뀌었는데..

몇번째 비트가 바뀌었는지 알려면 . 어떤 비트연산자를 사용해야 하나요?

또한 0 에서 1로 바뀌었는지 1에서 0으로 바뀌었는지 어떻게 알아나요?

ㅡ,.ㅡ;;의 이미지

이런경우 원자적 실행이 보장되나요??

공유메모리 shm을 할당하여 변수 i 를 선언하고

자식프로세서를 생성하여.. i 에 값을 증가 합니다.

shm->i = shm->i + 1;

이럴경우 i의 값이 읽혀지고 아직 데입이 완전히 끝나지 않은상태에서
형제 프로세스에서 i 의 값을 또 읽어 가버릴수 있나요?

멀티시퓨를 장착한 SUN 장비 입니다.

페이지

프로그래밍 QnA 구독하기