[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Is there any way to receive or pass an argument of C type "va_list"?
[Thread Prev] | [Thread Next]
- Subject: Re: Is there any way to receive or pass an argument of C type "va_list"?
- From: T Lee Davidson <t.lee.davidson@xxxxxxxxx>
- Date: Thu, 4 Apr 2024 21:05:50 -0400
- To: user@xxxxxxxxxxxxxxxxxxxxxx
On 4/4/24 18:01, Jussi Lahtinen wrote:
If not possible in Gambas, would a C program be able to process a va_list if it's pointer was passed to it?
I'm a bit confused... the example you sent (TestCommandical) used "va_list" to interact with Gambas side.
What exactly do you mean?
Jussi
No, it used a function that accepted variadic arguments to receive an integer, the array of structs, and OPTION_END. It's signature consisted of one parameter plus variadic parameters.
int parse_options (int count, ...)
{
va_list ap;
int ret;
va_start (ap, count);
ret = parse_options_va (count, ap);
va_end (ap);
return ret;
}
That function then slurped the variadic arguments into a va_list and passed that to parse_options_va().
int parse_options_va (int count, va_list ap)
{
...
}
I need to know if there is a way, or not, to pass or receive a va_list type directly to an external function or by a Gambas
function (a callback). If not in Gambas, then perhaps I could write my own shared C library to do va_list conversions.
According to this /old/ StackOverflow post [1], "The va_list type is an array containing a single element of one structure containing the necessary information to implement the va_arg macro." I'm guessing that I could pass a pointer to a C function that would parse the va_list for me, but I am unsure about that.
[1] https://stackoverflow.com/questions/4958384/what-is-the-format-of-the-x86-64-va-list-structure -- Lee --- Gambas User List Netiquette [https://gambaswiki.org/wiki/doc/netiquette] ---- --- Gambas User List Archive [https://lists.gambas-basic.org/archive/user] ----
| Re: Is there any way to receive or pass an argument of C type "va_list"? | T Lee Davidson <t.lee.davidson@xxxxxxxxx> |
| Is there any way to receive or pass an argument of C type "va_list"? | T Lee Davidson <t.lee.davidson@xxxxxxxxx> |
| Re: Is there any way to receive or pass an argument of C type "va_list"? | Jussi Lahtinen <jussi.lahtinen@xxxxxxxxx> |