목록컴퓨터 관련 (85)
Linux Programmer
gettimeofday는 유닉스, 리눅스 시스템 프로그래밍에서 시간을 구할 때 쓰던 함수이다. 마이크로초(백만분의 1초)단위로 구할 수 있는 기능을 가지고 있어서 많이 사용되는 함수이다. 그러나 앞으로는 gettimeofday는 사용하지 말아야할 함수가 되었다. 왜냐하면 gettimeofday는 2008년도 유닉스 표준인 SUSv4-2008에서 앞으로 제거될 구식(obsolescent) 함수로 지정했기 때문이다. 물론 하위 호환성을 위해서 gettimeofday 함수는 계속 제공될 것이다. 하지만 기본 시스템 라이브러리에서는 제거되고, 구식 라이브러리를 따로 포함해야 사용할 수 있게 될지도 모르기 때문에 차후에는 gettimeofday는 쓰지 않는 편이 좋다. 참고로 지금까지의 표준안의 행보로 봤을 때 ..
SearchMyFiles는 파일을 검색하는 프로그램인데, 검색 모드 중에 중복 파일을 찾아주는 유용한 기능이 있다. 반대로 중복되지 않은 파일만 찾는 기능도 있다. 이 프로그램을 사용한 것은 하드 디스크를 정리하면서 중복된 영상, 그림, 음악 파일들이 하두 많아서 중복 파일을 지우기 위해서 찾았다. 사실 처음에는 파일 찾기 기능과 리눅스에서 쓰이는 유틸로 작업햇는데 헷갈리기도 하고 시간도 너무 많이 걸렸다. 그래서 검색을 해봤더니 같은 용량의 파일을 찾아주는 프로그램들을 소개한 페이지가 있지 않은가? (참조 URL : http://www.techsupportalert.com/best-free-duplicate-file-detector.htm) 그 중에서도 SearchMyFiles가 가장 레이팅이 높길래 ..
벌써 몇 년이 지난 이야기다. 교육을 받던 분이 굳이 C언어를 배워야 할 필요가 있냐고 물어보셨다. 그에 대한 개인적인 생각을 적어보도록 하겠다.(이 글은 컴관련 전공자에 한하여 유효한 이야기이다. 비전공자라면 굳이 꼭 C언어를 배울 필요는 없다. 물론 개인적인 공부 방향이 컴관련 하부구조이거나 혹은 나중에 컴관련 대학원을 진학하려면 C언어 공부는 필수다.) 1. 체계화된 프로그래밍 순서를 익힐 수 있다. 모든 프로그래밍은 기본적으로 연산에 필요한 데이터를 메모리에 적재(load)하고 일련의 계산 결과를 저장(store)하게 된다. 이 후에 결과 데이터를 특정 위치로 전송하거나 복제하기도 한다. 이런 기본적인 계산 단위가 논리적으로 분기되고 복합적으로 연결된 것이 바로 프로그래밍이 되겠다. 그러나 가장 ..
윈도XP를 사용하다보면 종료를 시도 할 때 반응이 없거나, 혹은 3~4분 정도 반응이 늦는 경우가 종종 생긴다. 이런 경우에 그냥 파워 버튼을 눌러서 끌 수도 있지만 자주하면 윈도 운영체제가 망가진다. 재수없으면 파일도 날라가므로 권장하지 않는다. 종료가 잘 안될 때 가장 확실한 해결 방법은 재설치가 있지만 시간이 오래 걸리고 백업등 골치 아픈 일들이 많다. 따라서 왠만하면 재설치를 하지 않고 해결하는 방법을 시도해보는 것이 좋다. 아래 글은 재설치 전에 꼭 해볼 것들이다. 1. 우선 종료를 시도한다.먼저 종료를 시도한 뒤에 종료 될 때까지 기다려본다. 대부분 10여분 정도 이내에 종료되므로 커피라도 한잔 마시고 오도록 한다. 이렇게 종료를 시도해두는 이유는 이벤트 로그 기록을 쌓기 위함이다. 2. 재부..
블루스크린 0x0000007B (윈도 XP) 얼마전 지인이 간단한 사무용 조립 PC 스펙을 하나 뽑아달라고 해서 i3 CPU에 B75 칩셋으로 뽑아주었다. 지인도 간단한 PC 조립은 스스로 할 수 있는 정도라서 부품 리스트만 보내주었는데, 윈도XP 설치 후 자꾸 블루스크린(에러코드: 0x0000007B)이 뜬다고 했다. 그러면 이 문제를 해결하는 과정을 살펴보자. 결론부터 이야기 하자면 블루스크린 0x0000007B는 하드 디스크와 DVD 드라이브를 잘못 꼽아서 발생한 했던 것이다. 물론 0x0000007B는 다른 이유로도 발생한다. 자세한 것은 Tim Fisher의 블로그를 참조하자. [1] 당시 메인보드는 Asrock B75M 이었는데, SATA3가 3개, SATA2가 5개가 지원되는 보드였다. 그림..
* 주의: 여기서 설명하는 getline은 C++의 getline 메소드와는 다른 것입니다. 혼동하지 마시기 바랍니다. fscanf는 기본적인 입력 받는 함수로 모든 C언어 기초 책에서 소개되고 있지만 개행 문자(new line)나 공백 처리에 곤란한 부분이 있어서 실무환경에서는 fgets + sscanf 로 대체하여 사용하는 편이다. 하지만 scanf는 여전히 형식화된(formatted) 데이터, 즉 숫자나 문자, 공백으로 띄워진 문자열들을 처리할 때는 편리하다는 장점도 있다. 그렇다고해서 scanf의 여러가지 문제점이 완전 해결되는 것은 아니지만!! * scanf의 문제점 scanf("%c", ...) 로 읽는 경우에는 개행 문자를 사용자 입력으로 처리하기 때문에 문자 입력 후 엔터를 치면 다음번 s..
UDMA(Ultra DMA) 6 설정은 기본적으로 설정되지 않은 경우가 많다. 현재 대부분의 시스템은 UDMA 6를 지원하고 있지만 사용자가 직접 설정해주지 않으면 제대로 안되기 때문이다. 실제로 본인 PC도 설정이 되어있지 않았었는데, 별다른 느낌없이 써오다가 같은 스펙을 가진 PC의 HDD가 더 빠르기에 조사해보다가 UDMA 6가 설정되지 않은 것을 알게 되었다. 일단 본인의 하드 디스크가 UDMA mode 몇을 사용하는지는 HDTunePro를 사용해보면 알 수 있다. 위 그림처럼 "지원됨"과 "활성" 부분이 모두 UDMA Mode 6로 되어있다면 문제가 없다. 그러나 활성 부분이 더 낮은 값으로 되어있다면 지원가능한 모드보다 낮은 성능을 쓰고 있다고 보면 된다. (하지만 Mode5 정도만 되어도 큰..
얼마전 무심코 mpstat 명령을 실행했는데 시스템에 아직 설치가 안된 상태였다. 그런데 그냥 명령어가 실패했나부다 했는데........ 다음과 같은 친절한 메시지가 나온다. # mpstat bash: mpstat: command not found... Install package 'sysstat' to provide command 'mpstat'? [N/y] * Running.. * Resolving dependencies.. * Downloading update information.. mpstat명령이 들어있는 sysstat 패키지를 설치할 것이냐고 물어보는 것이 아닌가? 언제부터 추가된 기능인지는 모르겠으나 새삼 편리해서 놀랬다. 리눅스가 이렇게 친절해도 되는건가? ^^ 왠지 까칠한 리눅스가 더 ..
인터넷 백과사전인 위키피디아(위키미디어 재단)의 재정상태가 악화일로에 치닫고 있다. 그래서 창립자인 지미 웨일스가 기부를 호소하기에 이르렀다. (지미 웨일스의 원문) 올해 초 구글에서 200만달러, 그리고 이번에는 50만 달러를 내놓았다. 그 외에 다른 기업들도 위키피디어에 기부하는데... 한국은 아직 개인적인 기부 외에 기업들은 나서지 않고 있다. 특히 한국의 수많은 IT 기업 중 어느 하나도 위키피디아에 기부했다는 소리를 듣지 못했다. 참 한국 기업들의 자화상은 쪼잔하구나. 포탈기업들이나 수많은 IT기업들은 다 뭐하고 있는가? 개인적인 기부만 하는 한국 사회를 보니 기업들이 괜히 천민 자본주의 소리를 듣는 것이 아님을 실감하게 한다. 분명 알게모르게 그네들도 위키피디아의 혜택을 보고 있을텐데...
2011.11.9일자 MS office update로 이 문제는 부분적으로 패치되었다. 패치된 내용은 인덱싱보다 파일 저장을 먼저 하도록 하는 것 같다. 하지만 이 경우에도 큰 파일을 여러번 저장하게 되면 오류가 발생한다. 그래서 아래 본문처럼 해결 방법을 설정해두는 편이 좋다고 생각된다. 특히 큰 파일을 편집할 때면 더더욱 그렇다. 엑셀의 공유 위반의 경우도 같은 맥락으로 해결된다. 1. 원인 및 증상 얼마전부터 MS워드 2010에서 큰 용량의 문서 파일을 저장하려고 하면 "파일 사용 권한 오류이므로 Word에서 파일을 저장할 수 없습니다"라는 메시지가 나왔다. 이런 경우에는 꼭 파일을 날려먹거나 한참 뒤에 저장함으로서 문제를 해결했는데... 어제 몇시간 작업한 것을 날려먹고 화가나서 해결책을 찾기 시..
얼마전 스티브 잡스가 눈을 감았는데, 그 보다 더 위대한 업적을 남기신 데니스 리치(Dennis Ritchie)도 눈을 감았다.(향년 71세, 1941년 9월 9일 – 2011년 10월 12일) 일반인들에게는 애플을 창업한 스티브 잡스가 더 위대하고, 더 많이 알려져있겠지만, 업적으로만 보면 스티브 잡스보다 훨씬 훌륭한 분이 바로 데니스 리치이다. (위키 참조: http://en.wikipedia.org/wiki/Dennis_Ritchie) 그의 가장 큰 업적은 많은 사람들이 알고 있는 C언어로서 이것이야말로 현대적인 컴퓨팅 환경을 있게한 프로그래밍 언어의 조상이며 살아있는 전설이다. 만일 C언어가 없었다면 이렇게 발전된 컴퓨팅 환경이 오기 힘들었을 것이다. 지금의 리눅스, 윈도우즈, 맥의 OSX 등등 ..
스티브 잡스(Steve Jobs, 1955-2011) 2011년 10월 5일 눈을 감다. 가장 치열하고 가장 빠르게 발전했던 IT시대였던 80년대 ~ 2000년대까지의 산 증인이며 그 변화의 중심에서 발전을이끌어냈던 그가 어제 눈을 감았다. 그가 있었기에 그의 영감에 자극받았던 경쟁자들은 더욱 열심히 IT의 변화를 이끌어낼 수 있었던 것이 아닐까 생각해본다. 그 자신은 뛰어난 프로그래머도 학문적인 천재도 아니였다. 예로 마우스는 제록스의 연구소에서 가져온 것이고 최근의 Mac OSX는 유닉스에서 가져왔다. 하지만 여기에 다양한 기술과 아이디어를 접목시켰던 것은 그의 생각이었다. 그 누군가가 보기엔 콜롬부스의 달걀이 쉬워보일 수 있다. 이미 다 있는 것 아니냐고 할 수 있다. 하지만 개척자의 한 걸음은 이..
히타치 2TB 하드 디스크 2종 비교. 업글을 하면서 히타치 2TB 하드 디스크가 서로 다른 2종을 보유하게되었다. 그래서 간만에 벤치마크 테스트. 비교할 디스크는 다음과 같다. Hitachi 2TB Deskstar 7K2000 (SATA2/7200/32M) 출시일 : 2009.09 7200RPM Hitachi 2TB Deskstar 5K3000 (SATA3/32M) 출시일 : 2011.08 5700RPM 히타치의 하드 디스크는 모델명이 7K로 시작하면 7천대 RPM을 가지고 있고, 5K로 시작하면 5천대 RPM을 가진다. 당연한 소리지만 RPM이 크면 더 빠를 것이다. 하지만 새로 나온 신제품은 RPM외에 여러 신기술이 들어있을 수도 있으니 신제품의 낮은 RPM과 구형제품의 빠른 RPM은 성능 차이가 ..
예전에 위키에 TS(Thread-Safety) 내용중에 잘못된 내용이 있는 것을 알게되었다. 까맣게 잊고 있다가 누구에게 TSF(Thread-Safe-Function)알려주다가 위키를 참고하라고 했다. 문득 생각이 나서 다시 위키 내용을 보았다. http://en.wikipedia.org/wiki/Thread_safety 위 링크를 가보면 재진입(reentrant)에 대해 잘못 올라와 있는 내용은 삭제되었다. 잘못된 내용이란 재진입은 만족하지만 쓰레드 안전(thread-safety)은 만족하지 않는 코드가 있다고 하는 것이었다. 하지만 실상은 재진입은 쓰레드 안전을 충족하고 나아가 비동기 시그널에서도 제대로 작동하는 더 엄격한 규약을 만족하는 코드를 말한다. 히스토리를 살펴보니 reentrant에 대해 ..
다나와 뉴스를 보다가 충격적인 기사를 보았다. SATA 케이블만 바꿔도 음질이 바뀐다고? 모오디오 사이트에서 PC의 SATA 케이블을 바꿨더니 사운드가 좋아졌다는 것이다. 문제는 SATA 케이블은 사운드와 전혀 상관이 없는 케이블이라는 것이다. 이런 말도 안되는 것이 간섭현상이니 뭐니 하면서 합리화하려는 사람들이 있었다는 것이다. (아래는 기사내용에 있는 부분을 캡쳐한 것이라고 한다.: 출처는 다나와뉴스~) 결론부터 이야기하자면 사타케이블이 PC 사운드에 영향을 줄 가능성은 없다. SATA는 하드 디스크 인터페이스 규약이다. 즉 자동차로 비유하자면 엔진의 몇기통짜리냐 하는 구동 방식이라고 보면 된다. 그러면 엔진 기통수에 따라서 자동차의 오디오 음질이 달라질 수 있나? 8기통 엔진을 달면 4기통 엔진을 ..
이 글은 2008년도에 개정된 POSIX.1-2008 표준에 추가된 함수, dprintf에 대해 소개하는 글입니다. TOC 1. 형식화된 입출력에서 printf 란? 2. printf와 고수준 파일 처리 3. 새로운 형식화된 출력 dprintf 4. 결론 과거 타자기부터 컴퓨터까지 수 많은 발전 중에 가장 중요한 것중에 하나는 데이터를 정확하고 멋드러지게 출력하는 것이었다. 그러다보니 프로그래밍에서 빠질 없는 것이 바로 형식화된 입출력(Formatted Input/Output)이다. (형식화된 입출력이란 데이터의 형태를 변환하여 읽거나 출력하는 것으로 로케일 변환, 자릿수 맞춤, 들여쓰기(tab) 등등의 기능을 말한다.) 1. 형식화된 입출력에서 printf 란? 형식화된 입출력에서 printf는 출력 ..
* 이 글은 C언어 시스템 프로그램에서 주로 사용되는 reentrant(재진입성) 함수와 멀티쓰레드 안전(Multi-threads-safety)의 차이와 기능에 대해서 알아보는 글입니다. (참고: "멀티쓰레드 안전"은 매뉴얼 표기시 MT-safe, MT-safety, Thread-safe라고 표기합니다.) 우선 책에는 애매모호하게 짧게 적어놔서 문의 메일을 여러 차례 받았습니다. 매번 같은 내용을 설명하는 것도 힘들고, 자세히 설명드리지도 못해 죄송한 마음에 미리 적어두고 해당 링크만 참조시켜드릴 요령으로 작성하게 되었습니다. [책의 원문] * 원자성과 쓰레드 - 안전, 재진입성에 대해서 원자성(atomicity)이 보장되는 코드(or 함수)는 일단 해당 코드 부분이 시작하면, 종료되기 전에는 다른 코드..
- Microsoft driver update for Realtek RTL8168C(P)/8111C(P) Family PCI-E Gigabit Ethernet NIC (NDIS 6.20) I've updated Realtek RTL8168C(P)/8111C(P) Family DRIVER to NDIS 6.20. And sometimes my PC lost network connection. If your PC had the same problem, just rollback the driver. (also realtek website arhive has same driver.)
이번에 집필을 다시 하면서, 소스코드를 타이핑할 때마다 fixed font가 너무 맘에 들지 않았다. 글꼴이 마음에 안드니까 타이핑 할 때마다 거슬렸다. 그래서 괜찮은 글꼴이 없나 인터넷을 어슬렁 거렸는데... 우연히 네이버 나눔 글꼴중에 "나눔고딕 코딩글꼴 (http://dev.naver.com/projects/nanumfont/)이 있어서 한 번 써봤다. 약간 폭이 좁아서 글꼴이 세련되게 뻗어있지만 fixed font라서 indentation이 딱딱 맞는다. 아주 좋다. 그리고 글꼴 개발자들이 코딩의 어려움중 하나인 숫자 1과 소문자 L의 차이, 영문 소문자 i의 가독성을 신경써서 만들어서 눈에 확 들어온다. 그래서 앞으로 이 글꼴을 쓰기로 결정!!! 다운로드는 여기로 : http://dev.nave..
집에 형님이 놀러오면서 회사에서 준 갤럭시S를 보여줘서 잠깐 가지고 놀았다. 일단 잠깐 가지고 놀은 결과, 2가지 정도 맘에 들지 않았다. 1. 반응속도 2. UI들의 버튼 배치 1번의 문제는 터치후 실행하는 동안의 반응 속도가 영 맘에 안든다는 것이다. 화면을 드래그해서 옆으로 밀었을때 뚝뚝 끊기는 느낌이 들었으며, 통화나 다른 기능을 눌렀을때 약 1초에서 2초가량 화면에 검게 변했다가 프로그램이 작동한다는 점이다. 최소한 터치했으면 기능으로 변환중이라는 메시지라도 뿌려주던가 해야지 유저입장에서는 참 불만스러웠다. 적어도 아이폰은 이 부분에서는 훨씬 선방했다는 느낌이다. 그 외에도 OS나 어플 프로그램이 전체적으로 최적화가 덜 되었는지 속도가 영 이상했다. 재실행하는 경우 가끔씩 느려지는 느낌도 들고 ..