프로그래밍 QnA

moonjw1520의 이미지

리눅스에서 SmartCard 을 이용한 작업을 하는데 막히는 부분이 있어 질문드립니다.

안녕하세요 ..
Linux에서 스마트카드 리더기를 사용하여 스마트카드의 내용을 읽어와서 작업을 해야하는 상황입니다.

보통 serial port을 사용할 경우
fd = open("/dev/cua0", O_RDWR);
이런식으로 device의 fd을 가져와서 사용 하는 것으로 알고 있습니다.

저는 usb SmartCard Reader을 사용하는데
device의 fd을 가져오기 위해서 device의 path을 알아야 되는데
path을 모르겠습니다.

system77의 이미지

(자바) arraylist 정렬에 궁금해요

자바는 많이 해보지 않아서요

arraylist를 정렬할려면 Collections.sort 메소드를 통해 정렬을 하지만

실시간으로 정렬을 할려면

add 하고 Collections.sort(arr) 매번 해주는게 효율적인지

아니면 정렬알고리즘을 써서 정렬하는게 좋을지 판단이 안서요

eldrids의 이미지

[완료] 동적할당 부분에서 멈추는데...왜 이런지 모르겟습니다.

using namespace techsoft;
typedef techsoft::matrix<double>	dMatrix;

declspec의 이미지

3byte jmp opcode?

x86 어셈블리의 jmp 관련
내용들을 보면 short, near, far 점프가 있는데요
short 는 opcode 뒤에 1바이트 상대오프셋이 와서
-127~128 만큼 점프가 가능하고

near 의 경우 16비트 오프셋이 따라와서 +-32K 정도까지
점프가 가능하다고 합니다
그리고 near 점프는 3바이트 명령어라고 합니다
그런데 실제로 어셈블리의 hex 코드를 보면

opcode 가 E9 인 jmp 구문이
opcode 포함 5바이트를 차지하고
E9 라는 opcode 뒤에 오는 상대 오프셋도
4바이트로 지정하는것 같더군요...?

문서에서도
E9 opcode 에 대해서 뒤에 오는 상대 오프셋이
16비트/32비트 둘다 되는걸로 나와있는데
어셈블러가 E9 만 본다음 뒤에 몇바이트가 오프셋인지 어떻게 알까요?
그리고 3바이트 jmp 는 가능한건가요?
제가모르는 뭔가가 있는거같은데...

santapemagic의 이미지

QuickSort 실행시간 확인하는 코드에서 숫자 단위가 커지면 에러가 나며 멈추는 현상

여러가지 정렬방법에 대해 다양한 상황에서 각각의 실행시간을 알아보는 코드를 짜고 있는데요

QuickSort방법이 문제를 일으키네요

정렬하려는 배열의 숫자가 작을땐 분명 정렬도 잘 되고 아무런 문제없이 잘 돌아가는데

클럭시간을 알아보기위해 배열의 크기를 5000정도까지만 올려도 실행중에 다운이 나버립니다.

정작 같은 크기를 입력받은 BubbleSort는 문제없이 잘 돌아가는데 말이죠.

도대체 뭐가 문제인걸까요...

코드가 잘못된걸까요, 아니면 다른 내부적인 문제일까요?

32211011223의 이미지

hosts.equiv 파일 질문

안녕하세요
리눅스 네트워크 부분 공부하던 도중에 모르는 것이 생겨 여기에 질문을 올리게 되었습니다.

hosts.equiv 파일 구성이

host_name : host_name의 접근을 허용한다.
host_name user_name : user_name에 대한 host_name의 접근을 허용한다.
+ : 모든 시스템의 접근을 허용한다.
+ user_name : user_name에 대한 모든 시스템의 접근을 허용한다.
- host_name : host_name의 접근을 차단한다.
host_name –user_name : user_name에 대한 host_name의 접근을 차단한다.
+ @netgroup : netgroup에 대한 모든 시스템의 접근을 허용한다.

이런식으로 써있는데

declspec의 이미지

gdb 에서 opcode 어떻게 보이게하나요?

간단한건데 아무리 구글링을 해도 없네요 ㅠㅠ

gdb 로

disass main

이런식으로 명령을 내리면
Dump of assembler code for function main:
0x08048444 : lea 0x4(%esp),%ecx ; esp+4 를 ecx 로
0x08048448 : and $0xfffffff0,%esp ; esp 를 16의 배수로 정렬
0x0804844b : pushl -0x4(%ecx) ; esp 를 push? 왜?
0x0804844e : push %ebp ; main 스택프레임 잡고..
0x0804844f : mov %esp,%ebp
0x08048451 : push %edi ; 레지스터들 저장
0x08048452 : push %esi

owg7689의 이미지

[완료]리눅스 커널 2.4.31 빌드하는데 오류가 나는데 이유를 잘 모르겠습니다. 도와주세요.

안녕하세요. 리눅스 커널을 공부하고 싶어서 책을 보고 공부를 하는데 빌드가 안되서 질문을 올리게 되었습니다.
데비안 6.0.4(squeeze) kernel 2.6.32 입니다.
gcc는 gcc 4.4.5 를 설치 했습니다.
-----------------------------------
wget 을 이용해서 kernel 2.4.31.tar.bz2를 다운받고 압축을 풀었습니다.
먼저 make mrproper를 해서 기존 커널 의존성을 모두 제거 했습니다. 그 다음
make menuconfig를 해서 커널 환경 설정해 주었습니다. 그다음 make dep , make clean 을 실행시켰고

make bzimage 를 실행시키는데

/usr/src/linux-2.4.31/include/asm/mpspec.h:87 warning : 'packed' attribute ignored for field of type 'unsigned char[6]'
make : *** [init/main.o] Error 1

kkyu의 이미지

getenv 문제

getenv 로 현재 쉘의 LINES 와 COLUMNS 를 구하려고 하는데요.

프로그램에서 getenv("LINES")를 하면 무조건 NULL만 반환 됩니다...

env에는 아애 LINES관련된게 없더군요..근데 또

그냥 echo $LINES를 치면 24라고 딱! 나옵니다.

왜그런거죠 ㅠ.ㅠ??? 수고하세요~

eldrids의 이미지

[완료] C에서 C++ 함수를 호출했습니다. 그런데 변수 주소가 이상하게 되어버렸습니다.

C 메인에서

double *ARS (double gyro[3], double accl[3], double magn[3], double dt);
로 선언한 후 C++ 영역에 있는 함수를 호출했습니다.

ARS(gyro,accl,magn,0.01);

C++ 함수에 있는 영역 입니다.

extern "C" dMatrix ARS (double gyro[3], double accl[3], double magn[3], double dt);

dMatrix ARS (double gyro[3], double accl[3], double magn[3], double dt)
{
printf ("% 10.5lf, % 10.5lf, % 10.5lf, % 10.5lf, % 10.5lf, % 10.5lf\n", gyro[0], gyro[1], gyro[2],accl[0], accl[1], accl[2]);
}

페이지

프로그래밍 QnA 구독하기