// Copyright (c) 2023, the Dart project authors. Please see the AUTHORS file // for details. All rights reserved. Use of this source code is governed by a // BSD-style license that can be found in the LICENSE file. import 'dart:ffi'; import 'dart:io'; import 'package:ffi/ffi.dart'; void main() { if (Platform.isWindows || Platform.isAndroid) { // printf is not linked in. return; } using((arena) { printf('Something\n'.toNativeUtf8(allocator: arena)); printfInt32('Something %i\n'.toNativeUtf8(allocator: arena), 32); printfInt32x2('Something %i %i\n'.toNativeUtf8(allocator: arena), 32, 64); }); } final printf = DynamicLibrary.executable() .lookupFunction< Void Function(Pointer, VarArgs<()>), void Function(Pointer) >('printf'); final printfInt32 = DynamicLibrary.executable() .lookupFunction< Void Function(Pointer, VarArgs<(Int32,)>), void Function(Pointer, int) >('printf'); final printfInt32x2 = DynamicLibrary.executable() .lookupFunction< Void Function(Pointer, VarArgs<(Int32, Int32)>), void Function(Pointer, int, int) >('printf');