프로그래밍 QnA

chocokeki의 이미지

C언어에서 구조체에 대한 메모리 align은 어떻게 해야 하나요?

32bit 자료형에 대한 pointer는 대상의 메모리 주소가 32bit align 되어 있어야 하고
16bit 자료형은 주소가 16bit로 align 되어 있어야 하고...그렇다면 궁금한 부분이 생겼습니다

15바이트 크기 struct가 있다고 가정한다면 이놈의 memory align은 어떻게 되어 있어야 할까요?

왜 이런 문의를 드리냐면 바이트 자료형의 버퍼를 크게 잡아둔 다음 여러 타입의 구조체가 공용으로 해당 버퍼를 같이 사용하는데요 align에 의한 문제가 발생하지 않도록 하려 합니다

그간 생각 없이 당연히 되겠지 하고 사용했는데 코딩룰 검사 돌려보니 왜 byte배열을 struct로 type casting 해서 쓰냐고 경고 떠서 진짜 이론적으로도 문제가 없는지 확인하는 중입니다
(사용 중인 chip은 unaligned access를 하면 fault가 발생합니다)

struct의 각 멤버의 address가 각 멤버의 data type 크기에 해당하는 align이 모두 맞아야 문제가 없을 것 같은데 괜히 복잡하게 생각하는건지 아닌지 모르겠습니다

kunsan0426의 이미지

어셈블리어 해석 및 C언어 전환(초보)

안녕하세요 어셈블리어를 처음배우고 있는 학생입니다
책을 사서 공부하고 있는데 아래의 의미 해석 및 C언어로 전환을
어떻게 해야할지 몰라 글을 올려봅니다
초보여서 많은 도움 부탁드립니다

익명 사용자의 이미지

여러 파일을 몇 파일씩 concatnate 하기

안녕하세요 생명과학을 연구하는 사람입니다.

105개의 텍스트 파일이 있다고 하겠습니다.
이 것을 10 개 씩 하나의 파일로 concat하려고 합니다. (105개의 파일을 10개씩 묶었으므로 반드시 10으로 안 나눠떨어져도 무리없이 돌아갈 스크립트가 필요합니다.)

제가 생각할 때, 아래 비슷한 형식으로 만들면 될것 같은데, "new_file.txt"의 이름을 매번 바꿔줘야 할 텐데 방법이 안떠오르네요. 검색어도 마땅치 않아 이 곳에 도움을 요청드립니다. 감사합니다.

ls *.txt | xargs -n 10 -I {} cat {} > new_file.txt # target 이름을 매번 어떻게 바꿀 수 있을까요?

m211007의 이미지

flask 에 대한 질문드립미다

pip install Flask-Migrate 랑 pip3 install Flask-Mirgrate 하면 자꾸 저게 뜹니다. 아무리 찾아봐도 해결책도 안나와서 질문드립니다. 일주일째 해결을 못하고있어요 도와주세요ㅠㅠ

김우현@Google의 이미지

중위표기식을 후위표기식으로 바꾸는 문제에서 result값이 NULL로 나옵니다

#include

#include

#include

typedef struct _MyStack

{

char *m_data;

int m_numElements;

} MyStack;

int push(MyStack *s, char chData)

{

if(s->m_data == NULL) // root node

{

s->m_numElements = 1;

s->m_data = (char*) malloc(sizeof(char));

}

else

{

s->m_numElements++;

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" 처럼 진행하면 안되나요?

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

페이지

프로그래밍 QnA 구독하기