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

yungyuhyun54의 이미지

리눅스에서 chmod 명렁어를 c언어로 구현중입니다.

리눅스에서 chmod 명렁어를 c언어로 구현중입니다.

-v옵션을 구현하고있는데,

변경할 파일을 open으로 열어서 파일디스크립터 fd에 넣고
fstat 함수로 파일디스크립터와 stat구조체 주소를 넣고
변경전의 st_mode를 받아와서 출력해주고
변경후의 st_mode를 받아와서 출력해주는 소스입니다.

그런데 첫번째 파일이 자꾸 고정된 값으로 출력이 됩니다.
파일을 여러개 넣으면 첫번째 파일만 비정상출력, 나머지는 정상적으로 출력됩니다.

여러개 넣은 파일의 순서를 바꿔도 첫번째 파일만 비정상출력됩니다.
(이미지 - 오류1.png)

오류1 그림에서 8진수 100755의 100은 일반파일이고
20620의 20은 문자 장치라는데 이 부분이랑 관련이 있는지 궁금합니다.

chmod-v.png는 해당 부분 소스입니다.
perm.png는 권한을 출력해주는 perm함수 부분의 소스입니다.
이유를 도저히 모르겠어서 질문드립니다.

ljs0652의 이미지

UAC와 CF_HDROP가 관계가 있을까요??

탐색기 프로그램 만드는데

드래그앤 드랍이 안돼서 찾아보니 uac 관련 문제였고,
ChangeWindowMessageFilter(WM_DROPFILES, MSGFLT_ADD);
ChangeWindowMessageFilter(WM_COPYDATA, MSGFLT_ADD);
ChangeWindowMessageFilter(0x0049, MSGFLT_ADD);

이걸 넣어주니까 해결이 됐는데

파일 / 폴더 붙여넣기, 이동하기가 문제가 되네요

::IsClipboardFormatAvailable(CF_HDROP) 이 부분이 문제가 되는데

윈도우에서 복사를 하면 무조건 클립보드에 들어갈테고, 저걸 못 불러오는거 같은데

uac 문제 때문일까요? 혹시 방법ㅇ ㅏ시는분 계시면 도움좀 부탁드립니다

익명 사용자의 이미지

CRC 사용법에 있어 질문드립니다.

안녕하세요. crc 부분을 공부하고 있습니다. 자료를 찾아서 하는 도중 너무 감을 못잡겠어서 질문드립니다. 이게 맞는 말인건지..한번 읽어주시면 감사하겠습니다.

1. crc란 순환 중복 검사로 데이터를 송신하면 제대로 수신되었는지 확인하기 위하여 사용되는 것입니다.

2. 사용 방법으로

보내고 싶은 데이터 A
특정 값 B

A뒤에 B의 최고차항 수만큼 비트를 더한 데이터 A'

crc데이터 C (A'/B의 나머지)

A'에서 더해준 비트에 C를 넣은 데이터 D

D를 송신.
D를 수신.

D에서 A'만 가져옴.
다시 B로 나눠 나머지가 같으면 통과.

3. 1bit씩 확인하고 싶으면

A : 0x01
B : 0x01

A' : 0x010

C : 0x00

D : 0x010...

이라 하는건가요.. 계산이 너무 헷갈리는군요..

긴글 읽어주셔 감사합니다.

익명 사용자의 이미지

시리얼 통신(232) 에서 드물게 에러가 발생합니다.

시리얼 통신으로 데이터를 보내는중에 음 하루에 2~3회 정도 에러가 발생합니다.

1초에 한번씩 데이터를 전송중이고 1회 에러가 발생하게 된경우 짧게는 10초 ~ 길게는 60초 정도

잘못된 데이터 값이 전송이 됩니다..

예를 들면 stx 데이터1, 데이터2, 데이터3, 데이터4, 데이터5, 데이터6, 데이터7, 데이터8 ETX

이런식으로 전송되는 것이 정상적일때

stx 데이터1, 데이터2, 데이터3, 데이터4, 데이터5, 데이터6, 데이터7, 데이터8(여기에 STX가 물려서 다음라이인이 이어서 전송) ETX

와 같이 데이터 8에 STX가 물려서 그다음 라인이 전송되는 에러가 발생하거나

stx 데이터1, 데이터2, 데이터4, 데이터4, 데이터5, 데이터6, 데이터7, 데이터8 ETX

데이터 3번 자리에 4번이 덧씌어지거나 하는 현상이

24시간 ( 86400 초 간 전송 ) 시 약 100~200개 정도의 데이터가 이러한 에러를 보이고 있습니다.

232통신은 9600/8/N/1/N 으로 사용하고있는데

익명 사용자의 이미지

C언어 문자열 잘르기 및 탐색

32,"zzz,zzz" ,asd 또는 43 , ㅁㄴㅇ, ㅁㄴㅇ 이 2 두가지 형태 존재

가 있을 때
32
zzz zzz
asd
이렇게 3가지로 자르고 싶은데
strtok 으로 , 를 자르면 " "안에 있는 문자열이 잘려서 의도한대로 되지가 않습니다..
혹시 방법이 없을까요??

익명 사용자의 이미지

어셈블리어 해석


function kk:
0x000000000040100c <+0>: push %rbx
0x000000000040100d <+1>: mov %edx,%eax
0x000000000040100f <+3>: sub %esi,%eax
0x0000000000401011 <+5>: mov %eax,%ebx
0x0000000000401013 <+7>: shr $0x1f,%ebx
0x0000000000401016 <+10>: add %ebx,%eax
0x0000000000401018 <+12>: sar %eax
0x000000000040101a <+14>: lea (%rax,%rsi,1),%ebx
0x000000000040101d <+17>: cmp %edi,%ebx

익명 사용자의 이미지

c언어 문법 질문하겠습니다..

안녕하세요. 소스를 보고 해석해야 하는데 문법적인 부분을 모두 찾아서 하는 중 자료를 못찾겠어서.. 이렇게 질문을 올립니다.

1. 아래 문법에서 extern은 외부 변수를 가져오는 것은 알겠는데 그 뒤에 MESSAGE는 외부 파일 명이라 생각하는 것인가요? 또한, 그 변수를 사용해서 값을 넣는거 같은데 a뒤에 점을 찍고 b라고 치는건 a가 구조체로서 그 안에 있는 b값에 0x00을 넣는다는 의미인건가요?

extern MESSAGE a;

a.b = 0x00;

2. a &= b은 a = a&b와 같은 의미인거죠?

3. asm("NOP")는 데이터 시트에 나와있는 명령어 하나 처리하는 시간만큼 딜레이를 한다는데
– 135 Powerful Instructions – Most Single Clock Cycle Execution
이 부분을 통해 1cycle이라는 것을 알 수 있는건가요? 그러면 1cycle이 몇s인건 어떻게 계산하는 건가요?

긴 글 읽어주셔서 감사합니다.

haebi의 이미지

lvm 스냅샷이 궁금합니다.

리눅스 새로 설치하다 LVM 이 있길래 한번 적용해 보았습니다.
루트파티션 줄이고, 홈 파티션 잡고 등등... 설정하다 스냅샷 한번 써볼까 하여 조사를 좀 하였습니다.

일단 제가 이해하고 있는 lvm 스냅샷 입니다.

1. 스냅샷 만들고
원본lv <-
스냅샷lv (1G)

2. 만든 스냅샷 사용하도록 설정한다.
원본lv
스냅샷lv (1G) <-

3. 스냅샷 만들때 설정한 용량 초과하면 정지된다 ...?
zfs는 선 사용 후 할당이면, lvm은 선 할당 후 사용 (내가 이 스냅샷에서 얼마만큼 쓸지 미리 계산해둬야 하는 불편함?)

4. 원본 + 스냅샷 의공간만큼 pv 에서 용량이 소모된다.
예)
원본LV 10G 중 3G 사용 (7G 빈공간)
스냅샷 10G 설정.

페이지

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