不知道如何最好地描述这个,但在这里解释不好。
我希望能够用printf
I.E做我能做的事情
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);
}
}
答案 0 :(得分: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 );
}
答案 1 :(得分:0)
只需使用sprintf(3)
:
char buffer[100];
sprintf(buffer, "Variable: %d", x);
write_sock(sock, buffer);