我编写此代码是为了从服务器发送文件夹中文件内容的列表,以便在客户端中查看。该代码有效,但是我看到所有文件都没有换行符。如何查看带有换行符或空格的文件?
例如,现在我看到:“ file1.txtfile2.txtfile3.txt”,我会看到“ file1.txt”
file2.txt file3.txt”

谢谢!

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);

最佳答案

容易,这样声明一个换行符

char newline = '\n';


并发送

rv = send(conn_fd, &newline, 1, 0);


因此,如果您要发送目录名称和后跟一个换行符,请按照以下方式进行操作

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 ... */
}

关于c - 如何在C语言的Recv中插入换行符,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28772357/

10-14 18:42