프로그래밍 QnA + 설치 및 활용 QnA

chocokeki의 이미지

c언어 참조되지 않는 변수 최적화 방지 기법?

안녕하세요

가끔 일부 코드만 최적화를 방지해야 하는 경우가 있는데요
예를 들어 다음과 같습니다

아래 코드 설명을 첨가하자면 에러가 발생하면 무조건 hw에서 레지스터를 1회 읽어야 해당 레지스터가 클리어 되는 경우가 있습니다

그래서 tmp에 데이터를 옮겨넣고 tmp의 역할은 끝이납니다(다른곳에서 참조 x)

volatile uint32_t tmp;

if 에러
tmp = read_register(hw_address);

그래서 걱정이 되는 경우가 있는데요 tmp가 단순히 읽기만 하고 다른곳에서 참조를 하지 않기 때문에 최적화로 사라지는 문제가 생길까봐요

혹시 이런 경우에 대비할 뭔가 좋은 방법이 없을까요?

awdxawdx101의 이미지

1 word의 크기

윈도우즈 API에서 lParam의 HIWORD, LOWORD 할때는 word의 크기를 16bit로 취급하고, gdb의 메모리 보는 명령어의 x/wx 에서 'w'ord 는 32bit를 의미합니다.

어디서는 1워드가 16비트고 어디서는 1워드가 32비트라고 하는데 도대체 1워드의 크기는 몇 비트인가요?

류성철@Google의 이미지

AES 암호화 질문드립니다.

AES128로 데이터 통신시 통신상대가 무결한지 확인할려고 합니다.

평문 P 와 암호문 C 가 있을 때...

(ㄱ)이라는 모듈이 평문 P를 (ㄷ)으로 보내고
(ㄷ)이라는 모듈은 평문 P를 암호화 하여
(ㄷ)이 (ㄱ)모듈로 암호문 C를 보냅니다.
(ㄱ)에서는 암호문 C를 복호화 하여 평문 P와 동일한지 확인합니다.

이 떄 평문, 암호문은 노출될 위험을 가지고 있습니다.
그러면 암호문 내부의 key값 및 shift가 확인이 가능한가요?

jbs0123의 이미지

커널 소스 파악 질문있습니다.

context switching이 어떻게 동작하는지 궁금하여 분석을 해보려다...내공이 부족하여 질문을 올리게 되었습니다.
일단
movq %rsp,TASK_threadsp(%rdi)
movq TASK_threadsp(%rsi), %rsp
이런 코드가 있는데 TASK_threadsp가 어떤 동작을 하는지 모르겠습니다. 찾아 들어가면 결국 마지막에
asm volatile("\n->" #sym "%0" #val :: "i" (val)) 나옵니다. 이건 또 어떤 문법인지..제가 C언어를 못하는건지 아니면 어셈인지.. 파악을 못하겠습니다. 도움좀 부탁드립니다.

seojh1431의 이미지

aclocal-1.4 is needed 표시가 나옵니다.

centos 6.8 64bit 버전입니다.

autoconf , automake 이런거 설치 해주어도 저런 것이 뜨는데 어떻게 해결해야할까요?

dygks8557의 이미지

c언어 정수를 입력받아 2진수로 표현하기 질문있습니다.!

양수를 입력받았을 때에는 출력이 잘 되는데 음수를 입력받았을 때에 1의 보수까지는 했는데 2의 보수로 넘어가는 부분에서 출력이 안되네요..
제 생각으로는 이상이 없는거같은데 54~63번에 어디에 이상이 있는지 궁금합니다!
아직 지저분한 코딩이지만 이쁘게 봐주세요..ㅎㅎ

myiun20의 이미지

우분투 SD카드 복제

라즈베리파이 같은 보드에 SD카드를 뽑아서 다른 SD카드에 복제하고싶습니다.
어떻게 방법이없을까요?? 우분투 운영체제 SD카드를 윈도우에 꽂으니 자꾸 포맷하라구만 뜨고 인식이안됩니다.ㅠ

gurumong의 이미지

GTK+에서 도킹 패널을 구현할 수 있을까요?

Linux와 Windows 양쪽에서 사용가능한 UI 라이브러리를 찾다가 GTK+를 알게되었습니다
혹시 GTK+에서 때고 붙일 수 있는 도킹 패널을 쉽게 구현할 수가 있을까요?
김프에서 되는걸로 보아서 아마 가능할것 같은데 자료를 찾아보니 보이질 않네요

chocokeki의 이미지

aes cbc zero padding 궁금점

aes 128 cbc 는 만들었는데요 16B(128bit)로 나눠떨어지지 않는 크기 데이터도 암호화 할 수 있게 해달라는 요청이 들어왔습니다
그래서 0 패딩으로 구현하면 되겠거니하고 쉽게 생각했는데 이게 웬걸 안 쉽네요

다음과 같은 궁금한 사항이 생깁니다

1. 만약 3B를 암호화 하고 싶다고 가정했을 때 암호화 한 결과값은 16B로 나오는데
input에 3B output에 16B로 나오는게 맞나요?
(사용자 입장에서는 왜 3B를 넣었는데 왜 16B로 리턴이 되냐는 의문을 가지고 있어서요
이건 그냥 aes 자체가 그래서 그렇다고 설득을 하면 될까요?)

2. 위의 가정이 맞다면 사용자가 직접 16B로 나눠떨어지도록 공간을 잡고
0으로 직접 패딩을 하고 암호화 함수를 호출하는 거랑 별 차이가 없지 않나요?
(자동으로 되냐 수동으로 되냐)

3. 암호화 할 내용이 가변 크기이면 사용자가 암호를 풀었을 때 나오는 데이터 길이가 몇 인지 따로 관리를 하고 있어야 할까요?

페이지

프로그래밍 QnA + 설치 및 활용 QnA 구독하기