import os
     
    with open('logfile.txt', 'rb') as f:
    f.seek(-2, os.SEEK_END)
    while f.read(1) != b'\n':
    f.seek(-2, os.SEEK_CUR)
    print(f.readline().decode())

출처: https://www.quora.com/How-can-I-read-the-last-line-from-a-log-file-in-Python

'linux' 카테고리의 다른 글

fix invalid argument to attribute "__mode__"" error  (0) 2019.04.17
running valgrind on gentoo  (0) 2019.03.13
vivado execution through rofi  (0) 2019.01.31
ubuntu 설정들  (0) 2019.01.21
xserver error fix after gentoo system upgrade  (0) 2019.01.09

해당 에러는 glibc 2.26~2.27 version과 관련된 문제 같다.

해당 에러를 매뉴얼하게 고치기 위해서는 /usr/include/bits/floatn.h 파일을 조금 수정하면 된다.

 

original code

#if (defined __x86_64__                                                 \
     ? __GNUC_PREREQ (4, 3)                                             \
     : (defined __GNU__ ? __GNUC_PREREQ (4, 5) : __GNUC_PREREQ (4, 4)))
# define __HAVE_FLOAT128 1
#else
# define __HAVE_FLOAT128 0
#endif

 

modified code

#if (defined __x86_64__                                                 \
     ? __GNUC_PREREQ (4, 3)                                             \
     : (defined __GNU__ ? __GNUC_PREREQ (4, 5) : __GNUC_PREREQ (4, 4)))
//# define __HAVE_FLOAT128 1
//#else
# define __HAVE_FLOAT128 0
#endif

 

'linux' 카테고리의 다른 글

python read file from the bottom  (0) 2019.10.10
running valgrind on gentoo  (0) 2019.03.13
vivado execution through rofi  (0) 2019.01.31
ubuntu 설정들  (0) 2019.01.21
xserver error fix after gentoo system upgrade  (0) 2019.01.09

Here is how I understood not just what virtual functions are, but why they're required:

Let's say you have these two classes:

class Animal { public: void eat() { std::cout << "I'm eating generic food."; } }; class Cat : public Animal { public: void eat() { std::cout << "I'm eating a rat."; } };

In your main function:

Animal *animal = new Animal; Cat *cat = new Cat; animal->eat(); // Outputs: "I'm eating generic food." cat->eat(); // Outputs: "I'm eating a rat."

So far so good, right? Animals eat generic food, cats eat rats, all without virtual.

Let's change it a little now so that eat() is called via an intermediate function (a trivial function just for this example):

// This can go at the top of the main.cpp file void func(Animal *xyz) { xyz->eat(); }

Now our main function is:

Animal *animal = new Animal; Cat *cat = new Cat; func(animal); // Outputs: "I'm eating generic food." func(cat); // Outputs: "I'm eating generic food."

Uh oh... we passed a Cat into func(), but it won't eat rats. Should you overload func() so it takes a Cat*? If you have to derive more animals from Animal they would all need their own func().

The solution is to make eat() from the Animal class a virtual function:

class Animal { public: virtual void eat() { std::cout << "I'm eating generic food."; } }; class Cat : public Animal { public: void eat() { std::cout << "I'm eating a rat."; } };

Main:

func(animal); // Outputs: "I'm eating generic food." func(cat); // Outputs: "I'm eating a rat."

Done.

https://stackoverflow.com/questions/2391679/why-do-we-need-virtual-functions-in-c

 

 

 

 

Why do we need virtual functions in C++?

I'm learning C++ and I'm just getting into virtual functions. From what I've read (in the book and online), virtual functions are functions in the base class that you can override in derived class...

stackoverflow.com

binding 과 관련된 일이다..필요하면 early binding/late binding 찾아봐

https://www.geeksforgeeks.org/virtual-function-cpp/

Error running Valgrind on Gentoo Linux: the strlen problem

If you have ever tried to install Valgrind on Gentoo Linux you may have come across this error when you try to run the program:

==20032== Memcheck, a memory error detector
==20032== Copyright (C) 2002-2010, and GNU GPL'd, by Julian Seward et al.
==20032== Using Valgrind-3.6.1 and LibVEX; rerun with -h for copyright info
==20032== Command: ./1.x
==20032==

valgrind: Fatal error at startup: a function redirection
valgrind: which is mandatory for this platform-tool combination
valgrind: cannot be set up. Details of the redirection are:
valgrind:
valgrind: A must-be-redirected function
valgrind: whose name matches the pattern: strlen
valgrind: in an object with soname matching: ld-linux-x86-64.so.2
valgrind: was not found whilst processing
valgrind: symbols from the object with soname: ld-linux-x86-64.so.2
valgrind:
valgrind: Possible fixes: (1, short term): install glibc's debuginfo
valgrind: package on this machine. (2, longer term): ask the packagers
valgrind: for your Linux distribution to please in future ship a non-
valgrind: stripped ld.so (or whatever the dynamic linker .so is called)
valgrind: that exports the above-named function using the standard
valgrind: calling conventions for this platform. The package you need
valgrind: to install for fix (1) is called
valgrind:
valgrind: On Debian, Ubuntu: libc6-dbg
valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo
valgrind:
valgrind: Cannot continue -- exiting now. Sorry.


As it turns out, this is a common error but the internet is awash with confusing information so I will try to help by explain what I did to get it working.

You don't need to reinstall Valgrind. It's fine. But what you do need to do is re-install glibc but with special options enabled. Open up the make.conf file in vi or your favourite editor:

vi /etc/make.conf

The things you need to add are shown in bold:

CFLAGS="-march=nocona -O2 -pipe -ggdb -fno-builtin-strlen"

FEATURES="preserve-libs nostrip splitdebug"

When you save these changes you can reinstall glibc:

sudo emerge glibc


reference : http://bioinfornetics.blogspot.com/2015/01/error-running-valgrind-on-gentoo-linux.html


'linux' 카테고리의 다른 글

python read file from the bottom  (0) 2019.10.10
fix invalid argument to attribute "__mode__"" error  (0) 2019.04.17
vivado execution through rofi  (0) 2019.01.31
ubuntu 설정들  (0) 2019.01.21
xserver error fix after gentoo system upgrade  (0) 2019.01.09

add


source /vivado/settings64.sh/path


to ~/.profile file

'linux' 카테고리의 다른 글

fix invalid argument to attribute "__mode__"" error  (0) 2019.04.17
running valgrind on gentoo  (0) 2019.03.13
ubuntu 설정들  (0) 2019.01.21
xserver error fix after gentoo system upgrade  (0) 2019.01.09
pulseaudio daemon start fail  (0) 2018.11.14

powerline / fontawesome font 는 font폴더에 설치를 해야함


network dns는 resolv.conf 파일안에거를 수정해야되는데 이건 자꾸 재설정되니까 resolvconf command를 통해하거나 ifdown/ifup을 통해해야함


한글설정은 uim 설치한뒤 global settings에서 default input method를 byeoru로 바꿔야함


'linux' 카테고리의 다른 글

running valgrind on gentoo  (0) 2019.03.13
vivado execution through rofi  (0) 2019.01.31
xserver error fix after gentoo system upgrade  (0) 2019.01.09
pulseaudio daemon start fail  (0) 2018.11.14
running DNNweaver in linux  (0) 2018.09.12

When use NVIDIA Graphic card, drivers for graphic card should not be upgraded. 

It would be better download driver through NVIDIA homepage directly and install after system upgrade. 

Xserver and Xorg-drivers must match with graphic card version. maybe downgrade?

Reinstall drivers for input devices (keyboard, mouse..) -> xf86-input-libinput


Virtualbox reinstall through virtualbox homepage. 

maybe it can done with emerge. but virtualbox version and qt version must match, so it can be messy. 

'linux' 카테고리의 다른 글

vivado execution through rofi  (0) 2019.01.31
ubuntu 설정들  (0) 2019.01.21
pulseaudio daemon start fail  (0) 2018.11.14
running DNNweaver in linux  (0) 2018.09.12
how to change raspberry pi clock freq  (0) 2018.08.30

'linux' 카테고리의 다른 글

ubuntu 설정들  (0) 2019.01.21
xserver error fix after gentoo system upgrade  (0) 2019.01.09
running DNNweaver in linux  (0) 2018.09.12
how to change raspberry pi clock freq  (0) 2018.08.30
python 3.5 install on debian  (0) 2018.08.03

http://venividiwiki.ee.virginia.edu/mediawiki/index.php/DNNWeaver

'linux' 카테고리의 다른 글

xserver error fix after gentoo system upgrade  (0) 2019.01.09
pulseaudio daemon start fail  (0) 2018.11.14
how to change raspberry pi clock freq  (0) 2018.08.30
python 3.5 install on debian  (0) 2018.08.03
gentoo update  (0) 2018.07.27

'linux' 카테고리의 다른 글

pulseaudio daemon start fail  (0) 2018.11.14
running DNNweaver in linux  (0) 2018.09.12
python 3.5 install on debian  (0) 2018.08.03
gentoo update  (0) 2018.07.27
cannot set LC_CTYPE, LC_ALL  (0) 2018.07.24

+ Recent posts