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.