Codebase list libmawk / b9006faf-873e-4aac-9952-74a72f875ff9/main src / example_apps / 20_uninit_staged / app.c
b9006faf-873e-4aac-9952-74a72f875ff9/main

Tree @b9006faf-873e-4aac-9952-74a72f875ff9/main (Download .tar.gz)

app.c @b9006faf-873e-4aac-9952-74a72f875ff9/mainraw · history · blame

#include <stdio.h>
#include <libmawk.h>

/*
	Purpose: multi-stage uninit: collect results calculated in the END {} block
	Run: ./app -f test.awk
*/

int main(int argc, char **argv)
{
	mawk_state_t *m;

	/* init a context, execute BEGIN */
	m = libmawk_initialize(argc, argv);
	if (m == NULL) {
		fprintf(stderr, "libmawk_initialize failed, exiting\n");
		return 1;
	}

	if (m == NULL) {
		fprintf(stderr, "libmawk_initialize failed, exiting\n");
		return 1;
	}

	/* run END */
	libmawk_uninitialize_stage1(m);

	/* print variable "script_state" */
	{
		const mawk_cell_t *c;
		char buff[32];
		c = libmawk_get_var(m, "script_state");
		if (c != NULL)
			printf("app: script_state = '%s'\n", libmawk_print_cell(m, c, buff, sizeof(buff)));
		else
			printf("No such variable \"script_state\"\n");
	}

	/* free the context */
	libmawk_uninitialize_stage2(m);

	return 0;
}