프로그래밍 QnA

kieslv의 이미지

[커널]커널 쓰레드에서 interruptible_sleep_on_timeout 사용시 USB 연결

안드로이드 개발 보드에서 커널 드라이버를 구현 중 입니다.

커널 쓰레드에서 다음과 같은 코드를 사용하고 있습니다.

while(1)
{
interruptible_sleep_on_timeout(&testevent, 1000);
printk("test!!!!\n");
if(test)
{
test = 1;
}
}

1. 부팅 후 정상 작동을 하는데 USB를 연결하게 되면 interruptible_sleep_on_timeout에 걸리지 않고 1000 이라는 타임아웃도 적용이 안되는것 처럼 보이면서 무한 루프를 돌게 됩니다.

2. interruptible_sleep_on_timeout 코드가 실행되기 전에 wake_up_interruptible 이 먼저 실행되면 interruptible_sleep_on_timeout 가 풀리지 않아서 테스트를 위해서 위와 같은 코드를 확인중입니다.

winner의 이미지

[완료] Filesystem에서 file 이름을 원자적으로 교환하는 기법이 있나요?

보통 file을 활용하여 transaction 작업을 한다면 기존 file을 복사하여 임시작업 file을 만들고, 임시작업 file 을 변경한 후 문제없이 완료가 된다면 임시작업 file을 원래 file로 전환해야 할 것 같은데요. 마지막 작업에서 원자적인 동작방식을 filesystem에서 지원하는지 궁금합니다.
Windows의 경우 file을 삭제하고, 바로 동일한 file 이름의 file이 생성되면 삭제된 file과 동일한 생성시간을 가졌던 것으로 기억하는데요. 앞의 file 명 변경에 대한 원자적 동작을 유사하게 지원하기 위해서 이런 형태로 동작하는 것 같다는 글을 읽었던 적이 있습니다. 하지만 이걸 모르면 사용자에게 혼란을 주더군요. 일반적인 사용자가 문제될 일은 없겠습니다만 programmer가 file 생성시간을 보고, update 동작을 구현하였을 경우 난감한 경우에 마주칠 수가 있습니다. Updater의 동작을 조사하다가 Daum PotPlater가 아마 file 변경시간을 조사했던 기억이 납니다.

이런 형태의 작업은 많이 있을 것 같은데 이론적으로 최대한 무결성을 보장하는 방식이 있지 않을까 생각해봅니다.

tk3829의 이미지

간단한 C언어 여쭤봅니다..^^

#include
#include

int main(void){
char ar[10][20];

printf("ar = %x\n",ar);
printf("ar+1 = %x\n",ar+1);
printf("*(ar+1)= %x\n",*(ar+1));
printf("*(ar+1)+1=%x\n",*(ar+1)+1);

printf("sizeof(ar) = %d\n",sizeof(ar));
printf("sizeof(ar+1) = %d\n",sizeof(ar+1));
printf("sizeof(*(ar+1))= %d\n",sizeof(*(ar+1)));
printf("sizeof(*(ar+1)+1)=%d\n",sizeof(*(ar+1)+1));

return 0;
}

mmx900의 이미지

PHP와 JSP 사이의 고민...

안녕하세요.
중소규모 쇼핑몰을 하나 운영하고 있습니다.
기존에 ASP.NET 기반이던 것을 장차 오픈소스 플랫폼으로 옮기려고 하는데요.
PHP/JSP/Python을 놓고 고민중인데 의견을 부탁드리겠습니다.

일단 제 기준은 다음과 같습니다.
-MVC 프레임웍 / ORM 널리 쓰이는 환경 (현재 .NET MVC / EF 사용중)
-인력 수급이 원활한 환경

이 기준으로 제가 선호하는 것은 자바인데, 운영 업체측에서는 추후 유지보수 발생시
(ASP/PHP 등에 비해) 비용이 많이 드는 게 아니냐는 걱정을 하고 있구요.
규모를 보면 PHP가 적합할 것 같은데, 제 옛날 기억으론
템플릿 정도를 사용했지 MVC 프레임웍이나 ORM은

mtg1의 이미지

모듈 컴파일 질문입니다.(컴파일 에러)

학교에서 예제로 주어진 get_ip.c 코드입니다.

invade2001의 이미지

커널 프로그래밍! 플래쉬 메모리의 블럭수와 페이지수?

플래쉬 메모리의 블럭수와 페이지수를 알고 싶은데..

이걸 커널 프로그래밍으로 어떻게 구현해야 감이 잘 안오네요

혹시 아시는 분이 없으신가요?

rootroot의 이미지

cURL에서 웹 페이지를 빨리 다운 받는 팁이 있을까요?

간단하게 libcurl을 이용해서 rss 구독기를 제작 중 입니다.

일단 주소대로 페이지를 하나씩 읽어온 다음,

하나씩 파싱한 후 파싱한 정보를 한대로 묶어서 리스트를 만들고 보여주는 식인데..

리스트가 적으면 상관없지만 구독할 리스트가 많아지면 많아질수록 읽어 오는 속도가 상당히 느리더군요,

(전체적으로 느린 것 보다 초기 화면에 뜨는 속도가 느립니다....)

다른 구독기랑 비교해봤는데 yarssr도 일일이 읽어오는지 많아질수록 느려지더라고요.

하지만 akregator는 피드를 한꺼번에 읽어온 다음 한꺼번에 파싱하는지 상당히 빠른 속도를 보이더군요.

(아니면 사용하는 라이브러리가 달라서 그런지도 모르겠습니다.)

그래서 질문드리는데 웹 문서를 대량으로 한꺼번에 읽어오는 방식이나

빠르게 문서를 읽어오는 라이브러리를 아시면 조언 좀 해주시면 감사하겠습니다.

아래는 제 소스 중 웹에서 소스 긁어 오는 함수인데 어떻게 수정하면 좀 더 빠를 수 있을까요?(c 소스)

limited107의 이미지

open 함수에서 왜 읽기/쓰기, 읽기, 쓰기용이 있는건가요?

얼마전에 ArBB라는 라이브러리를 공부하다가 변수 접근 방법에서 '읽기', '쓰기', '읽기/쓰기'로 선언하는 방법이 있었습니다.
C언어 fopen에도 'r+'로 '읽기/쓰기'를 할 수 있지 않습니까.

-----
여기서 질문입니다..! (퀴즈 프로그램 아닙니다. ^^...)

왜 읽기/쓰기 1개만 만들면되지, 왜 각각 만들어 두었을까요??
혹시, 변수 const(상수) 선언처럼 반드시 필요한건 아닌데 접근 권한을 제한하기 위해서 있는걸까요? ^^..

kokori0116의 이미지

awk, sed 질문

awk 와 sed 를 이용해서 쉘 프로그램 작성 중입니다.

며칠 동안 해결하지 못해 여기에 글을 올립니다.

# cat 1.txt
홍길동 1 1 10 10 10
김철수 2 2 20 20 20
김말자 3 3
김영희 4 4 40 40 40
오영심 5 5 50 50 50

#cat 2.txt
이름 = A
학년 = B
반 = C
국어 = D
영어 = E
수학 = F

파일 1.txt에 있는 값을 2.txt 에 대입시켜 result라는 결과를 만들었습니다.

# cat result
이름 = 홍길동
학년 = 1
반 = 1
국어 = 10
영어 = 10
수학 = 10

k1d0bus3의 이미지

메모리<->cpu간 작업시간을 최소로 단축시킬수있는 작업단위는 몇비트인가요??

구조체 링크드리스트(or 배열)을 만들어서, 메모리 <-> cpu간 r/w을 하려고 합니다.

제가알기로는 cpu는 32bit단위로 처리하고, 메모리 입출력단위는 8bit로 알고있습니다.

가능한한 메모리 <-> cpu간 작업처리시간을 줄이려면,(메모리에있는 구조체의 각멤버필드를 read/write하려고 합니다)

이때 구조체전체크기나 각각의멤버필드를

32bit의 배수에 맞추는게 유리합니까? 8bit의 배수에 맞추는게 유리합니까?

구체적으로 말하자면....

다음의 구조체 멤버들의 자료형은 어떡게 선언하는게 최선일까요?

비트필드로 선언하는게 유리합니까?

struct person{
어떤자료형? dataA; (크기는최소3bit이상되야함)
어떤자료형? dataB; (크기는최소10bit이상되야함)
struct person* link; (32bit)
};

페이지

프로그래밍 QnA 구독하기