0

不知道如何最好地描述这一点,但在这里解释一下。我希望能够用printfIE 做我能做的事情printf("Variable:%@",astring);

调用下面的方法我会运行write_sock(sock,"my message but i want a variable in here a well");

那有意义吗?

static void write_sock(int sock, const char *msg)
{
    int len = strlen(msg);
    if (write(sock, msg, len) != len)
    {
        perror("short write on socket");
        exit(1);
    }
}
4

2 回答 2

1

你说的是变量参数的使用......(注意: vasprintf() 可能可用也可能不可用......我只是在这里用它来说明)

#include <stdio.h>
#include <stdarg.h>

static void write_sock(int sock, const char *msg, ... )
{
    va_list args;
    va_start( args, msg );
    char* newMsg;

    vasprintf( &newMsg, msg, args );

    int len = strlen(newMsg);
    if (write(sock, newMsg, len) != len)
    {
        perror("short write on socket");
        exit(1);
    }

    free( newMsg );

    va_end( args );
}
于 2013-04-24T17:15:58.157 回答
0

只需使用sprintf(3)

char buffer[100];
sprintf(buffer, "Variable: %d", x);
write_sock(sock, buffer);
于 2013-04-24T17:16:05.193 回答