본문 바로가기

Programming/C & C++43

File Size ( file length ) 얻기 - ftell binary 로 파일을 읽어오는 프로그램을 작성하다 나중에 필요할까 싶어 정리해본다. ftell 과 fseek 만을 이용해서 file size를 얻어오는 방법을 이용하였다. int ftell ( FILE* stream ) - 스트림의 현재 file pointer 를 조사해서 시작점과의 거리를 바이트 단위로 리턴한다. #include int main(){ FILE* fpin = fopen( "input.txt" , "r"); fseek(fpin, 0L, SEEK_END); int fileLen = ftell( fpin ); fseek(fpin, 0L, SEEK_SET); std::cout 2010. 4. 23.
gdb 에서 signal 무시하기 gdb 에서 프로그램보다 먼저 signal을 잡기 때문에 간혹 디버깅하기 힘들때가 있다. 아래 명령어는 gdb shell 에 들어가서 사용하는 것이다. 시그날에는 SIGSEGV SIG32 등등 형식에 맞게 써준다. gdb> handle 시그날 nostop gdb> handle 시그날 noprint 참고로 argument 가 필요한 실행파일을 gdb 선언시 사용하고자 할때 --args 를 이용하면 된다. 만일 실행을 ./a.out 3 2 test.txt 로 해야한다면, 아래와 같이 선언후 gdb 모드에서 run을 해주면 된다. $ gdb --args ./a.out 3 2 test.txt 2010. 1. 6.
gcc 4.3 포팅시 유의할 점 원문 : http://gcc.gnu.org/gcc-4.3/porting_to.html 기존 std library가 계속 누적되서 개발되다보니, 그에 따른 중 아래의 표를 보고 참고해서 각각 맞는 녀석들을 골라써야 한다. 이것 이외에도 template 관련 사항이나 함수의 인자관련 에러가 추가되었는데 위의 원문을 참고 바란다. If missingThen include this header find, for_each, sort ostream_iterator, istream_iterator auto_ptr typeid isalnum, toupper INT_MIN, INT_MAX, RAND_MAX printf atoi, free, rand, exit EXIT_FAILURE strcmp, strdup, strcp.. 2009. 9. 29.
해깔리는 STL resize() 와 reserve()에 대한 고찰 상황 : 할당하고자 하는 메모리영역은 현재 잡힌 것보다 크다. resize(n) : 메모리를 할당. 오브젝트 하나를 생성한 후, 크기가 일치할때까지 오브젝트를 계속 삽입힌다. reserve(n) : 메모리를 할당. 끝 size() : 컨테이너 내부의 실제 오브젝트 갯수 capacity() : 할당된 메모리 총 영역 ( 컨테이너에 들어갈 수 있는 오브젝트의 총 갯수 ) 아래의 소스를 보자. #include #include using namespace std; class Test { public: int val_; static int t; Test() : val_(0) { cout 2009. 9. 21.