xref: /openbsd-src/regress/libexec/ld.so/dlclose/test2/prog1/main.c (revision 9c1a76b31d62ede3ce28a01951f3a5b115719c12)
1*9c1a76b3Skurt /*	$OpenBSD: main.c,v 1.1.1.1 2005/09/30 14:51:52 kurt Exp $	*/
2*9c1a76b3Skurt 
3*9c1a76b3Skurt /*
4*9c1a76b3Skurt  * Copyright (c) 2005 Kurt Miller <kurt@openbsd.org>
5*9c1a76b3Skurt  *
6*9c1a76b3Skurt  * Permission to use, copy, modify, and distribute this software for any
7*9c1a76b3Skurt  * purpose with or without fee is hereby granted, provided that the above
8*9c1a76b3Skurt  * copyright notice and this permission notice appear in all copies.
9*9c1a76b3Skurt  *
10*9c1a76b3Skurt  * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
11*9c1a76b3Skurt  * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
12*9c1a76b3Skurt  * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
13*9c1a76b3Skurt  * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
14*9c1a76b3Skurt  * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
15*9c1a76b3Skurt  * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
16*9c1a76b3Skurt  * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
17*9c1a76b3Skurt  */
18*9c1a76b3Skurt 
19*9c1a76b3Skurt #include <dlfcn.h>
20*9c1a76b3Skurt #include <stdio.h>
21*9c1a76b3Skurt 
22*9c1a76b3Skurt int
main()23*9c1a76b3Skurt main()
24*9c1a76b3Skurt {
25*9c1a76b3Skurt 	int ret = 0;
26*9c1a76b3Skurt 	void *libaa;
27*9c1a76b3Skurt 
28*9c1a76b3Skurt 	libaa = dlopen("libaa.so", RTLD_LAZY);
29*9c1a76b3Skurt 
30*9c1a76b3Skurt 	if (libaa == NULL) {
31*9c1a76b3Skurt 		printf("dlopen(\"libaa.so\", RTLD_LAZY) FAILED\n");
32*9c1a76b3Skurt 		return (1);
33*9c1a76b3Skurt 	}
34*9c1a76b3Skurt 
35*9c1a76b3Skurt 	if(dlclose(libaa)) {
36*9c1a76b3Skurt 		printf("dlclose(libaa) FAILED\n%s\n",dlerror());
37*9c1a76b3Skurt 		ret = 1;
38*9c1a76b3Skurt 	}
39*9c1a76b3Skurt 
40*9c1a76b3Skurt 	libaa = dlopen("libaa.so", RTLD_LAZY);
41*9c1a76b3Skurt 
42*9c1a76b3Skurt 	if (libaa == NULL) {
43*9c1a76b3Skurt 		printf("dlopen(\"libaa.so\", RTLD_LAZY) FAILED\n");
44*9c1a76b3Skurt 		return (1);
45*9c1a76b3Skurt 	}
46*9c1a76b3Skurt 
47*9c1a76b3Skurt 	if(dlclose(libaa)) {
48*9c1a76b3Skurt 		printf("dlclose(libaa) FAILED\n%s\n",dlerror());
49*9c1a76b3Skurt 		ret = 1;
50*9c1a76b3Skurt 	}
51*9c1a76b3Skurt 
52*9c1a76b3Skurt 	return (ret);
53*9c1a76b3Skurt }
54