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

chocokeki의 이미지

배열을 구조체화 하여 사용하면 문제가 발생할 소지가 있을까요?

환경은 다양한 endian이 섞여있는 임베디드 입니다(x86, arm, powerpc 등등)

flash 와 램에 데이터를 오고 가는 작업을 하는데 현재 코드는 이것이 모두 32bit 배열로 작업 되어 있습니다
아래를 보시는게 이해가 빠를 것 같습니다

digntnwls의 이미지

리눅스 프로그래밍 파일 write실행하고 바로 close를 실행해줘야 하나요?

안녕하세요!

리눅스에서 로그를 주기적으로 작성하는 프로그램을 작성하였는데요.

처음에 open을 실행하고 (APPEND와 SYNC 옵션을 사용했습니다)
write를 100ms 주기로 실행하면서 내용을 기록하다가
1시간마다 close하고 새로운 파일을 생성하도록 하였습니다.

"open-write-close" 패턴을 주기적으로 실행하는게 아니라
"open-write-write-...-write-close" 처럼 진행하면 안되나요?

현재 제가 작성한 코드를 계속 실행할 경우 파일이 손상될 가능성이 많을까요?

digntnwls의 이미지

리눅스 프로그래밍 파일 write실행하고 바로 close를 실행해줘야 하나요?

안녕하세요!

리눅스에서 로그를 주기적으로 작성하는 프로그램을 작성하였는데요.

처음에 open을 실행하고 (APPEND와 SYNC 옵션을 사용했습니다)
write를 100ms 주기로 실행하면서 내용을 기록하다가
1시간마다 close하고 새로운 파일을 생성하도록 하였습니다.

"open-write-close" 패턴을 주기적으로 실행하는게 아니라
"open-write-write-...-write-close" 처럼 진행하면 안되나요?

현재 제가 작성한 코드를 계속 실행할 경우 파일이 손상될 가능성이 많을까요?

lemonpiee의 이미지

임베디드 리눅스 멈춤 증상 관련 질문

안녕하세요 현재 리눅스 개발을 진행하고 있는 초보 개발자입니다.

현재 i.mx6 quad CPU에 Kernel, APP이랑 구축해서 운영중인데

운영 중에 불특정한 주기로 아래 메시지가 발생하면서 APP이 멈추고 터미널 입력(putty)도 안먹는 상황이 발생하게 됩니다.

[347274.686948] INFO: rcu_preempt detected stalls on CPUs/tasks:

[347274.692715] 0-...: (1 ticks this GP) idle=943/140000000000001/0 softirq=34286512/34286512 fqs=1

[347274.701674] (detected by 3, t=151567997 jiffies, g=12979956, c=12979955, q=4470230)

[347274.709521] Task dump for CPU 0:

[347274.712837] Test_C_APP R running task 0 363 362 0x00000002

ddddewang의 이미지

범위의 최대공약수 쿼리 최적화..

백준 12858번입니다.
구간의 최대공약수를 쿼리하는 문제고요, 레이지 프로파게이션을 이용해서 구현했습니다.
그런데 최대공약수는 구간합과는 달라서 리프노드까지 탐색해야합니다. 그래서 결국에는 세그먼트 트리의 역할은 레이지 프로파게이션하는 것 이외에는 없습니다... 그러니까 엄청 비효율적이라는 것이죠. 이 문제를 어떻게 해결하면 좋을까요?

Maylop@Google의 이미지

C언어로 서로소인지 확인하는 절차에서 오류가 납니다..

입력값 K1과 26이 서로소가 아니면 종료시키려 하는데 이런 오류가 뜹니다
" 식이 수정할 수 있는 Ivalue여야 합니다"

K1은 int형이구요 코드는 이렇습니다. 어떻게 해야 오류를 없앨 수 있을까요..

익명 사용자의 이미지

[문의] qemu 환경에서 호스트와 게스트 간단한 통신방법

리눅스 초보자입니다. 문의가 있어요.

환경요약,
호스트(우분투 20.04.3)
.qemu-system-x86_64 4.2.1 게스트(kernel 5.11.22, non-ubuntu only kernel)
.buildroot을 통해 가상 게스트 qemu-x86_64, rootfs(ext4파일시스템) 생성
.호스트 qemu를 통해 kernel 5.11.22 bzImag 로딩 및 buildroot의 rootfs 부팅

상기에서 qemu-system-x86_64 -kernel /usr/src/linux-5.11.22/arch/x86/boot/bzImage -m 1024M -smp 1 -boot c -hda buildroot/output/images/rootfs.ext4 -append "root=/dev/sda rw console=tty0 console=ttyS0,115200 acpi=off" -s

익명 사용자의 이미지

리눅스 RAID1 관련 문의

안녕하세요 vmware로 raid1 을 공부하고 있는데요
너무 이해가 안가서 질문을 남겨봅니다.
mdadm 이란걸 이용해서 raid를 만들고 있는데요
일단 20G 두개로 OS설치시 swap 2G, root 나머지 모두로 잡았습니다.
이렇게 설정해서 부팅하니 raid도 잘 잡혀있으나
하드1개를 지워버리고 부팅을 하면 다행히 부팅도 됩니다.
근데 문제는 여기서 새 하드를 추가해서 raid 설정하고 새로운 하드만
남겨놓고 기존하드를 지워버리면 부팅이 안됩니다.
아마 boot영역이 없어서 그런거 같은데
그래서 다음 설치시에는 swap,home,root,boot 4개를 다 넣어서 레이드를 잡아봤는데
md125 md126 md127 md128 이런식으로 4개나 생기더라구요
그럼 각자 다 /dev/125 이런식으로 4번 레이드를 다 생성해야되는건가요?
mdadm dev/디스크 형식은 안되는건지 여쭤봅니다.

spring7s의 이미지

리눅스 c언어 질문입니다

문제와 결과는 다음과 같습니다.

<문제> 부모 프로세스는 두 변수 n과 m을 통해 자식 프로세스가 더할 범위를 지정한다. n에는 10, m에는 100을 저장한다. 이들을 전역 변수로 선언하든 지역 변수로 선언하든 상관없다. 그리고 fork()를 이용하여 자식 프로세스를 생성한다. 자식 프로세스는 부모 프로세스를 그대로 복사하므로 부모에 선언된 변수 n과 m을 그대로 물려받는다. 자식 프로세스는 변수n에서 변수 m까지 합을 구하고 합이 5000보다 작으면 0을, 5000이면 1을, 5000보다 크면 2를 종료 코드로 리턴한다. 부모 프로세스는 wait() 함수를 호출하여 자식 프로세스가 종료하기를 기다린 후, 자식 프로세스의 종료코드를 읽어 n에서 m까지의 합이 5000보다 큰 것이었는지 판별한다.

<결과>

자식 프로세스: 10에서 100까지의 합은 5005
부모 프로세스: 5000보다 크다.

페이지

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