ncurses

Mattepuffo's logo
Visualizzare e indicizzare il disco con Duc su Linux

Visualizzare e indicizzare il disco con Duc su Linux

Mi sono imbattuto in Duc, un programma da riga di comando per Linux che ci consente di indicizzare il nostro disco e poi analizzarlo.

In verità mette a disposizione anche strumenti grafici e semi-grafici.

Inoltre, l'indicizzazione, viene fatta su database; di default viene usato Tokyocabinet, ma possiamo impostare anche SQLite.

Mattepuffo's logo
Gestire Systemd con chkservice

Gestire Systemd con chkservice

Systemd è il gestore dei servizi di default di praticamente tutte le distro Linux.

Uno dei suoi programmi più importanti è Systemctl, che ci permette di gestire le varieà unità (quindi lo start, stop, ecc).

Volendo è possibile usare un programma basato su ncurses per gestire le unità: chkservice!

Mattepuffo's logo
Verificare lo spazio usato da un file o una directory con ncdu

Verificare lo spazio usato da un file o una directory con ncdu

Ecco un programmino basato su NCurses veramente utile: ncdu (NCurses Disk Usage).

Questo piccolo programmino, da usare tramite terminale, ci permette di trovare lo spazio occupato da una directory o un file.

Dovrebbe essere disponibili tranquillamente nei repo ufficiali.

Per installarlo su Debian e derivate:

# aptitude install ncdu

Su RHEL6:

# yum install ncdu

Una volta installato, basta lanciare il programma indicando cosa vogliamo controllare.

Mattepuffo's logo
Intercettare tasto invio in C++

Intercettare tasto invio in C++

Ho un programma in C++ che si avvia e rimane attivo in attesa di connessioni con un ciclo infinito.

Voglio poterlo terminare usando il semplice tasto ENTER / INVIO.

Vediamo come fare sia in Visual C++ (quindi una versione per Windows), sia in C++ usando Ncurses (che gira quindi su Linux).

Visto che la versione VC++ è più semplice partiamo da qua.

Per controllare la pressione dei tasti su Windows dobbiamo usare la libreria conio.h.

Quindi includiamola e poi nel main:

#include // TUTTO QUELLO CHE VI SERVE
................
#include <conio.h>

int _tmain(int argc, TCHAR* argv[], TCHAR* envp[])
{
       // LANCIO PROGRAMMA CON CICLO INFINITO
       if(_getch() == 13)
       {
           // ESCO DAL PROGRAMMA
       }
      return 0;
}

La funzione _getch() controlla il carattere premuto; nella tabella ASCII il 13 corrisponde ad ENTER.

Se viene premuto esco dal programma.

Per Linux invece dobbiamo agire in maniera diversa in quanto conio.h è una libreria specifica Microsoft.

Ci sono vari porting per Linux, ma da quanto ho capito si basano anche su Ncurses.

Quindi io ho usato direttamente questa libreria.

Per programmare con questa libreria bisogna prima installare i pacchetti devel; su Opensuse:

# zypper install ncurses-devel

Questo pacchetto non è richieso per l'esecuzione, ma è comunque richiesto ncurses.