프로그래밍 QnA

redgrid의 이미지

IOCTL 관련하여 질문드립니다.

리눅스를 시작한지 얼마되지 않는 공부중인 사람 입니다 꾸벅...

리눅스커널 2.6.39.3 에서 아주 간단한 문자 디바이스를 작성하였습니다

#define DEV_NAME "/dev/test_device"
#define MY_IOCTL_NUMBER 't'

#define MY_IOCTL_READ _IOR(MY_IOCTL_NUMBER, 0, int)

//--- application
int main(int argc, char **argv)
{
int dev;
int data = 100;
dev = open(DEV_NAME, O_RDWR);

if(dev < 0) return -1;

ioctl(dev, MY_IOCTL_READ, &data); //값을 읽어오기 위해서 호출
...
}

위와 같이 어플을 진행했는데 _IOC_TYPE에걸려서 리턴되어 버립니다

se3812533의 이미지

(완료) c shell if 질문 있습니다.


c shell 질문 있습니다.

아래와 같이 2 개의 파일이 있고 이 파일의 기능은 file_list 안에 라이브러리 파일들이 각각 적혀 있는데
이 파일 리스트에서 검색을 하기 위한 것입니다.

1) :find_flist 파일 내용

#!/bin/csh -f
src_find_run ./file_list.f

2) src_find_run 파일 내용
#!/bin/csh -f

foreach cell (`cat $1`)

if (egrep "and_gate" $cell) then
echo "no contents"
else
echo "file in :$cell"

endif

end

2 번 파일 내용중에 grep 으로 and_gate 라는 구문이 있는지
검색해서 검색 내용이 있으면 리턴값이 0 이라서
무슨무슨 파일에 있다 라는 메시지를 뿌려주고 싶은데
마음대로 않되네요.

damedykim의 이미지

[완료]리눅스 C소켓 프로그래밍 좀 도와주세요~

리눅스 RAW소켓프로그래밍 질문인데요. 리눅스 아파치? 서버에서 관리자권한으로 컴파일해서 실행시켰는데 protocol not suported라고 에러가 뜨더라구요. ㅜㅜ
소스코드는 제가 대충 이렇게 짜봣는데 소스코드에 이상이 있는 건가요? 어떤게 문제인지 좀 알려주세요. ㅜㅜ

joony77의 이미지

줄바꾸기 문의.

안녕하세요?
이제 막? 시작한사람이라 잘몰라서 문의드립니다.

if (true)
pr_info("abcdefghijklmnopqr...."); // 이줄이 80자가 넘어가면,

if (true)
pr_info(
"abcdefghijklmnopqr....");

이런식으로 해야 되는지?
아님

if (true) {
pr_info(
"abcdefghijklmnopqr....");
}

줄이 바뀌었으니까 괄호를 해주어야 하는지?

시류의 이미지

브라우져 마다 개별적으로 proxy설정을 할 수 있는 방법이 있을까요?

혹시 mfc의 웹 브라우져나 jwebbrowser를 이용하는 방법이나

혹 다른 방법으로라도

브라우저에 개별적으로 proxy설정을 적용 할 수 있는 방법이 있나요?

powersys의 이미지

C++ class 인스턴스 생성없이..수행..

생각조차 하지 않았었는데...

우연히.. 클래스 인스턴스 생성없이.. 포인터 선언후 바로 사용된 코드를 보았습니다.

그런데 멀쩡히 돌더군요..ㅡㅡ;

class A 가 있다면..

A *ap;

ap->m(); 식으로.. 포인터 선언후 그냥 바로 사용되었습니다.. 그런데도 멀쩡히 돌고 있습니다..

어찌된건가요...

declspec의 이미지

리눅스 커널 질문.. 도와주세요

1. 리눅스 커널에서
cat /proc/kallsyms
를 통해서 심볼테이블을 확인해보면

c0851000 B swapper_pg_dir

이런식으로 심볼이 정의되있는걸 볼수있는데요
커널모듈 소스코드상에서

unsigned int* p = swapper_pg_dir;

이런 코드로 주소를 가져오려고하면
undefined symbol 이라고 에러가 나네요;
kallsyms 에서 확인이 가능한데 왜 사용을 못하는걸까요?

2. 커널페이지테이블의 시작주소가(swapper_pg_dir) 라고 해서
일단 가상주소가 심볼테이블에 있으니, 그곳을 따라가서 메모리 덤프를 떳습니다.
그러니까 페이지 디렉토리의 내용이 나오는것 같았습니다.

하지만 페이지 디렉토리에 있는 내용은
20비트의 페이지 테이블의 PFN(page frame number) 과, 12비트의 dirty 등 각종 비트들이었습니다.

kid1402의 이미지

if문에 대한 성능 질문입니다.

함수에서 파라미터들의 Validity 체크를 할 때, if 문 하나에 한꺼번에 다 체크하는 것이 성능이 좋을지, 아니면 그냥 하나하나 체크해주는게 좋을 지 궁금합니다.(하나에 다 넣어도 컴파일러가 최적화 해주려나요?)

예를 들어

BOOL CRegistry::SetValue(LPCTSTR valueName, DWORD value)
{
	if( !valueName || !value || !mIsOpened)
	{
		return FALSE;
	}
 
....

declspec의 이미지

x86 CR3 레지스터, 페이지디렉토리 질문

안녕하세요
x86 리눅스 아키텍쳐에서.
커널 페이지디렉토리의 물리주소가 CR3 레지스터에 들어있다고하길래

	int cr3_value = 0;
	asm
	(
	"movl %%cr3, %%eax\n\t"
	"movl %%eax, %0" : "=m" (cr3_value) : : "eax"
	);
 	printk("cr3_value == %X\n", cr3_value);

어떤분이 올려놓으신 소스를 가지고
커널모듈상에서 CR3 레지스터값을 출력해봤습니다
그러니까 0x1FBFD000 뭐 이런값이 나와서
이게 페이지디렉토리의 물리주소 위치인가보다... 했는데

혹시나싶어 모듈을 내렸다가 다시올려보니 위치가 다르게 찍히고, 할때마다 다르게찍히더군요??
어떻게된걸까요? ㅠㅠ

페이징을 해야하니까
CR3 레지스터값은 항상 일정해야하는거아닌가요??

cats96의 이미지

임베디드보드에서 cramfs를 사용중인데요 가끔 cramfs가 저장되는 nand에 bad가 발생되면 부팅이 안됩니다

인터넷검색해보니 cramfs에 bad가 발생하면 못쓴다고 나와있느데

이거 쓸수있는방법은 없을까요?

시스템 구조를 바꿀수있는 상태는 아닙니다

현재 시스템에서 오류가 너무 많이 발생하는데 이것을 좀 수정하여서 사용하여야 하네요

혹시 경험있느신분 답변 부탁드립니다

페이지

프로그래밍 QnA 구독하기