Escribo este código para enviar la lista de contenidos de archivos en una carpeta desde un servidor para verlo en un cliente. El código funciona, pero veo todos los archivos sin una nueva línea. ¿Cómo puedo ver los archivos con una nueva línea o espacio? Por ejemplo, ahora veo: “file1.txtfile2.txtfile3.txt” y vería “file1.txt file2.txt file3.txt”
¡Gracias!
DIR *dp; int rv, stop_received; struct dirent *ep; dp = opendir ("./"); char *newline="\n"; if (dp != NULL) { while (ep = readdir(dp)) rv = send(conn_fd, ep->d_name, strlen(ep->d_name), 0); (void)closedir(dp); } else perror ("Couldn't open the directory"); close(conn_fd);
Fácil, declara una nueva línea como esta.
char newline = '\n';
y enviarlo
rv = send(conn_fd, &newline, 1, 0);
Así que si quieres enviar el nombre del directorio y una nueva línea después de él, hazlo de esta manera
char newline; newline = '\n'; while (ep = readdir(dp)) { size_t length; length = strlen(ep->d_name); rv = send(conn_fd, ep->d_name, length, 0); if (rv != length) pleaseDoSomething_ThereWasAProblem(); rv = send(conn_fd, &newline, 1, 0); /* ... continue here ... */ }