glug:Funzioni c su linux
Giorgio Zoppi
zoppi@cli.di.unipi.it
Tue, 10 Apr 2001 12:39:09 +0200 (CEST)
On Tue, 10 Apr 2001, de_molay wrote:
> Qualcuno sa dirmi che libreria devo usare compilando in c , su linux se
> voglio usare la funzione per pulire lo schermo clrscr()?
> Uso , sotto dos , un vecchio compilatore Borlando Turboc , e li basta
> #include <conio.h>
Molte delle funzioni in <conio.h> non sono portabili,
ma specifiche di quell'enviroment.
La prima soluzione da "manovale" che mi viene in mente per pulire lo
schermo in linux e' seguente:
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/wait.h>
#include <errno.h>
#include <signal.h>
#define CLEAR_PATH "/usr/bin/clear"
#define NOT_OK -1
int clrscr (void) {
pid_t son;
int stato,ret;
signal(SIG_INT,SIG_IGN);
son = fork ();
if (son==NOT_OK) {
signal(SIG_INT,SIG_DFL);
printf("Errore nella fork");
return NOT_OK;
}
if (son) wait (&stato);
else if (son == 0)
{
ret=execl(CLEAR_PATH,"clear");
if (ret==NOT_OK)
{
signal(SIG_INT,SIG_DFL);
printf("Errore nella pulizia schermo");
return NOT_OK;
}
}
signal(SIG_INT,SIG_DFL);
return 0;
}
Esempio di utilizzo :
int clr;
if ((clr=clrscr())==-1)
{
printf("Si e\' verificato un errore");
}
Questo RIPETO e' il metodo da manovale, addirittura in programmazione
concorrente e' un qualcosa da non fare MAI.
Un altro metodo da manovale sarebbe :
int i;
for (i=0;i<100;i++)
{
printf("\n");
}
Il metodo reale se vuoi investigare puo' essere
sia nell'usare le curses, queste ultime hanno una funzione clear.
Ergo : man curses.