프로그래밍 QnA

leeky1124의 이미지

(linux) arm cpuid 확인

ARM에서 디바이스드라이버를 이용해서 CPUID를 확인하려고 합니다.

gogisimji의 이미지

리눅스의 커널 스레드 관련 질문이 있습니다.


커널 스레드의 task_struct는 mm_struct을 가지지 않고, 이전에 실행되엇었던

task의 mm_struct을 그대로 받아 쓴다고 책에 쓰여져 있는데요,

여기서 이해가 안되는 부분이 있어서요.

그러면 커널 스레드가 실행되었을 때 이전의 task의 mm_struct를 가지고 물리 메모리를 사용한다면

이전의 task의 데이터를 침범하는 것이 아닌가요?

그럼 커널 스레드가 끝나고 다시 원래 task로 돌아왔을 때 문제가 생길 것 같은데..

바보같은 질문인 것 같지만 답변 부탁드리겠습니다..ㅜ

porawon의 이미지

함수에서 반환되는 임시 객체

class Temp
{
};
 
Temp foo()
{
return Temp();
}
 
int main()
{
const Temp& temp = foo();
}

위의 코드에서 foo 함수가 임시객체를 반환하게 되는데 이 임시객체는 메모리 상에서 어디에 저장되나요?
foo 함수의 스택에 저장되면 함수 콜 이후에 소멸되서 위의 main 함수와 같은 코드는 사용할 수 없을 거 같은데 컴파일이 되서 질문드립니다.

ljh30633의 이미지

파일 디스크립터 id로 파일 권한 가져오기

c함수에 보면 path를 이용해서 chmod로 파일 permission 세팅하고

fchmod로 파일 디스크립터를 사용해서 permission세팅 하는 걸로 알고 있습니다.

해당 파일 path나 파일 디스크립터를 읽어 와서 현재 세팅 되어 있는 파일 퍼미션을 가져 올 수 있는 방법이 있나요?

chmod("a.txt", 0644); 이렇게 0644로 세팅 하는것처럼

머 예를 들면 getchmod라는 함수가 있을 때, int mode = getchmod("a.txt")를 실행 하면

mode값이 0644로 리턴되어 가져 올수 있다던지 제공하는 함수 또는

가져올수 있는 방법이 있나요?;;

구글링 실력이 부족해서 그런지 딱 이거다 하는게 안나오네요..

도움좀 부탁드립니다.

sjh431의 이미지

이 현상이 stack 관련 현상인가요?

안녕하세요.

windows 7, visual studio 2010 sp1 환경에서 개발하고 있는데요,

메인 프로그램을 실행 시키면, thread A를 띄우고, 이 thread A는 다시 thread B를 띄웁니다.

thread A의 역할은 thread B가 사용할 데이터를 만들어 주고,
thread B는 thread A로 부터 받은 데이터를 가공하여 파일로 떨굽니다.
이때 파일은 몰아서 떨구지 않고 실시간으로 떨굽니다.

문제가 되는 현상은 thread B가 떨군 파일의 일부가 손상되는 것인데요,
임의의 위치에서 발생하고 안 발생할 때도 있습니다.

소스코드를 주석처리 하면서 디버깅하다가 확인한 내용은
thread A에서, 포인터의 값을 변경할 때 위 문제가 생긴다는 것입니다.
이 포인터 값은 지역변수를 특정함수 내부에서 변경하기 위해 함수에 넘겨주는 포인터 인데요,
예를 들면, 아래와 같습니다.

momark의 이미지

MFC EditBox 오류

EditBox의 변수선언을 범주는 Velue로 형식은int형으로 선언을 했는데요
EditBox에 있는 숫자를 전부 지우면 오류가 뜹니다.

#undef _CrtDbgBreak

/* These methods don't need a separate
wchar version. Hence they need to be compiled only once from
the original file */

_CRTIMP void _cdecl _CrtDbgBreak(
void
)
{
__debugbreak();
}
이부분과

ASSERT(hWndOldLockout != m_hWnd); // must not recurse

이부분에서 브레이크가 잡히는데 왜그럴까요..

momark의 이미지

MFC 윈도우 가두기

메인프레임에서 다이얼로그창을 꺼내는 방식으로 만들었는데요 창모드로 게임할때 인벤토리가 게임화면 바깥으로 벗어나지 않듯이 다이얼로그를 이동할때 메인프레임 바깥으로는 이동을 못하게 하고싶습니다. 어떻게 해야 하나요

nomail의 이미지

Go언어와 Rust의 발전 가능성이 얼마나 있을까요?

장기적인 계획으로 openstack 같은 클라우드 시스템을 만들려고 합니다.

직장 때문에 시간날 때만 틈틈이 공부 중이라 아직 아무것도 준비된 건 없습니다ㅎㅎ

저는 c언어와 js만 해봐서 이런걸 만들려면 뭔가 다른언어가 필요할 것 같은데요.

c++를 대체한다는 구글의 Go언어와 모질라 Rust에 관심이 가는데 범용성과 현대적인 설계가 장점인 것 같습니다.

Go언어의 경우에는 위키에 공개된 수많은 프로젝트만 보더라도 발전가능성이 상당할 것 같구요.

KLDP에 프로그래머 분들이 많이 계시니 실제로 사용하셨던 경험이나 의견들을 듣고 싶습니다.



leeky1124의 이미지

아키텍처 루프라인에 대해서 궁금한 점이 있습니다.

현재 루프라인에 대해서 공부하고 있는 학생입니다.
일반적으로 루프라인은 CPU의 고정개수와 Clock, 내부의 FPU 개수에 의해서
최대 연산수행속도가 결정된다고 알고 있습니다.

하지만 시대가 흐름에 따라서 최근 빅리틀코어가 생겼는데
이와같은 코어에서는 루프라인이 어떤식으로 그려지는지가 궁금합니다.
(빅코어, 리틀코어에 대한 루프라인이 따로 생성이 되는건가요?)

qkrtntjd의 이미지

commit과 update

기본적인 질문하나 할께요 ㅠㅠ
다른사람과 소스포지를 이용해서 작업을 해야하는데 소스포지를 처음 사용해봅니다..
소스포지 설정은 다 되있는상태인데 상대방이 올려놓은 코드를 받아오는 명령어를 모르겠습니다..
diff, commit, update 셋중에 하나인것같은데
찾아보니 update인것같은데 만약 제 코드가 올라가버리면 프로젝트가 망가지게 되버려서..
서버에 올라온 상대방의 코드를 받아보는 명렁어가 update가 맞는지 궁금합니다

페이지

프로그래밍 QnA 구독하기