Un metodo tan viejo como la rabia, pero que me ha ayudado con muchas cosas.
Lo pongo por si os sirve.
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <stdbool.h>
int mystrlen(char *s)
{
int i = 0;
while (*s++)
++i;
return i;
}
char msg[] = "Mensaje en modo marquesina, metodo marquesina for Linux;)";
int main(int argc, char**argv)
{
int i;
int len = mystrlen(msg);
int start = len - 40;
int istart = start;
system("clear");
while (true)
{
--istart;
for (i = 0; i < 40; ++i)
{
if ((istart + i) >= len)
{
fputc(msg[(istart + i) - len], stdout);
}
else
{
fputc(msg[istart + i], stdout);
}
}
if (istart == 0) istart = len;
fflush(NULL);
sleep(1);
system("clear");
}
exit(EXIT_SUCCESS);
}
//gcc marquesina.c -o marquesina.out