Date: 28 Aug 2002 12:06:10 -0400 From: Joe Marcus Clarke <marcus@marcuscom.com> To: "Henning, Brian" <brian.henning@navitaire.com> Cc: "(E-mail)" <questions@FreeBSD.ORG> Subject: Re: pthreads compiler warnings Message-ID: <1030550771.329.1.camel@gyros.marcuscom.com> In-Reply-To: <E1846117A30764468D2192D5A48541CC03894D09@exchange.Navitaire.com> References: <E1846117A30764468D2192D5A48541CC03894D09@exchange.Navitaire.com>
next in thread | previous in thread | raw e-mail | index | archive | help
On Wed, 2002-08-28 at 09:40, Henning, Brian wrote: > Hello- > i am trying to run the following code but, when i do i get these errors. > Am i linking to the wrong library or doing something wrong? I read the man > pages and it said to use libc_r > for a threaded user program. Don't explicitly link libc into your application. For example, on -stable, you should compile this like: > cc -o xxx -pthread xxx.c On -current: > cc -o xxx -lc_r xxx.c Joe > thanks, > brian > > > gcc thread_example.c -lc_r > /usr/lib/libc.so: WARNING! setkey(3) not present in the system! > /usr/lib/libc.so: warning: this program uses gets(), which is unsafe. > /usr/lib/libc.so: warning: mktemp() possibly used unsafely; consider using > mkstemp() > /usr/lib/libc.so: WARNING! des_setkey(3) not present in the system! > /usr/lib/libc.so: WARNING! encrypt(3) not present in the system! > /usr/lib/libc.so: warning: tmpnam() possibly used unsafely; consider using > mkstemp() > /usr/lib/libc.so: warning: this program uses f_prealloc(), which is not > recommended. > /usr/lib/libc.so: WARNING! des_cipher(3) not present in the system! > /usr/lib/libc.so: warning: tempnam() possibly used unsafely; consider using > mkstemp() > > > > > #include <stdio.h> > #include <pthread.h> > > #define NUM_THREADS 3 > > void *BusyWork(void *null) { > int i; > double result = 0.0; > for( i = 0; i < 1000000; i++ ) { > result = result + (double)random(); > } > printf("result = %d\n",result); > pthread_exit((void *) 0); > } > > int main( int argc, char *argv[] ) { > pthread_t thread[NUM_THREADS]; > pthread_attr_t attr; > int rc, t, status; > > /* Initialize and set thread detached attribute */ > pthread_attr_init(&attr); > pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_JOINABLE); > > for( t = 0; t < NUM_THREADS; t++ ) { > printf("Creating thread %d\n", t); > rc = pthread_create(&thread[t], &attr, BusyWork, NULL); > if (rc) { > printf("ERROR; return code from pthread_create() is %d\n", rc); > exit(-1); > } > } > > /* Free attribute and wait for the other threads */ > pthread_attr_destroy(&attr); > for( t = 0; t < NUM_THREADS; t++ ) { > rc = pthread_join(thread[t], (void **)&status); > if (rc) { > printf("ERROR; return code from pthread_join() is %d\n", rc); > exit(-1); > } > printf("Completed join with thread %d status= %d\n",t, status); > } > > pthread_exit(NULL); > return 0; > } > > > To Unsubscribe: send mail to majordomo@FreeBSD.org > with "unsubscribe freebsd-questions" in the body of the message > -- PGP Key : http://www.marcuscom.com/pgp.asc To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-questions" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?1030550771.329.1.camel>