Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 28 Aug 2002 08:40:39 -0500
From:      "Henning, Brian" <brian.henning@navitaire.com>
To:        " (E-mail)" <questions@FreeBSD.ORG>
Subject:   pthreads compiler warnings
Message-ID:  <E1846117A30764468D2192D5A48541CC03894D09@exchange.Navitaire.com>

next in thread | raw e-mail | index | archive | help
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.
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




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?E1846117A30764468D2192D5A48541CC03894D09>