카테고리 없음2015. 6. 5. 10:57

소개

udev는 동적으로 현재 시스템이 상주하는 디바이스에 대한 노드를 제공하는 디바이스 매니져이다.

devfs 또한 비슷한 기능을 제공하지만, udev는 persistent 디바이스 네이밍을 제공하며(디바이스를 장작하는 순서에 상관없이), 유저스페이스에서 동작한다.

netlink 소켓을 통해 커널로부터 호출되어 사용되며, 이전에는 /etc/hotplug.d/defaul 링크를 사용하여 hotplug를 사용했었다.

다시 말해 udev는 데몬을 실행하여, netlink 소켓을 통해, 새로운 디바이스가 초기화 될 때 혹은 제거될 때 커널에서 날리는 uevent를 감지한다.

udev rule

udev 는 디바이스에 대한 이름과 어떤 액션을 취할 것인지에 대해 결정하기 위해 rules 파일을 읽는다.  이 파일은 /etc/udev/rules.d 에 위치한다.

Posted by code cat
카테고리 없음2015. 3. 23. 10:34

출처: http://askubuntu.com/questions/266013/fontconfig-warning-msfonts-rules-conf-line-23


Fontconfig warning: "msfonts-rules.conf", line 23: Having multiple values in <test> isn't supported and may not work as expected

    while executing


와 같이 경고 메세지가 뜰 때는,

/etc/fonts/msfonts-rules.conf file 를 열어

아래와 같은 섹션을 찾은 후:

<match target="font">
        <test name="family">
            <string>Andale mono</string>
            <string>Arial</string>
            ...
</match>

Andale Mono라는 tag를 각각의 tag로 감싸지도록 수정하면 된다.

<match target="font">
    <test name="family">
        <string>Andale Mono</string>
    </test>
    <test name="family">
        <string>Arial</string>
    </test>
    ...
</match>


Posted by code cat
프로그래밍/C++2015. 3. 23. 10:13

갑자기 C++ 소스를 봐야 하는데, 워낙 양이 많아서 전체적으로 틀을 보고 싶은데, class diagram이 있었음 했다.

그런데 그리자니... 노동력이 많이 들어가고... 그래서 찾아보았다.

우선 autodia라는 툴이 있는데, 설치가 조금 까다롭다.(적어도 perl을 안 써본 사람한테는)

그리고 무엇보다, 동작을 제대로 안한다.(이건 내 경우에 한해서)

template이라는 툴까지 잘 깔고 문제 없는 듯 한데, 정작 language를 인식 못한다.(혹시 db를 어디 깔아야 되는건가????)



그래서 이리 저리 찾다가 완벽하지는 않은데, 나름 유용한 툴이 있다.

cpp2dia(http://cpp2dia.sourceforge.net/)라고 

소스 받고 설치 후에 c++소스가 있는 곳에 가서 다음과 같이 실행하면 된다.



tclsh $설치경로/cpp2dia.tclssh 



그러면 output.dia라는 파일이 나오고, 이를 dia-normal 같은 어플리케이션을 통해서 보면된다.(jpeg, png로도 export가능하다)


올해 안에 python으로 비슷한 걸 한번 만들어봐야겠다.

'프로그래밍 > C++' 카테고리의 다른 글

생성자 호출 방법  (0) 2015.03.19
[에러] jump to case label -fpermissive  (0) 2014.02.19
[template]템플릿 예제  (0) 2013.08.04
null pointer vs stray pointer  (0) 2013.05.26
[c++] malloc/free 대신 new/delete을 쓰는 이유?  (0) 2013.05.18
Posted by code cat
프로그래밍/C++2015. 3. 19. 18:38

출처: C++ 에스프레소

생성자 호출 방법 중 실수할 수 있는 경우가 있다.

Car c1;                         //default constructor 호출
Car c2();                       // c2()라는 함수 원형선언, constructor 호출 아님!
Car c3(100, 3, "white");      // constructor 호출
Car c4 = Car(0, 1, "blue");   // 먼저 임시 객체를 만들고 이것을 c4에 복사

2번째의 경우 아무생각없이 하다가 쓸 수 있는 방법인데, 잘못된 방법이다.

'프로그래밍 > C++' 카테고리의 다른 글

[c++] UML autogenerator  (2) 2015.03.23
[에러] jump to case label -fpermissive  (0) 2014.02.19
[template]템플릿 예제  (0) 2013.08.04
null pointer vs stray pointer  (0) 2013.05.26
[c++] malloc/free 대신 new/delete을 쓰는 이유?  (0) 2013.05.18
Posted by code cat
카테고리 없음2015. 2. 4. 16:19

썬더버드를 exit한 다음,

윈도우 start menu에서 thunderbird.exe -ProfileManager

Posted by code cat