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 に答える