advanced programming unix environment

Brother Seamus brother_seamus at btinternet.com
Mon Apr 14 20:02:24 UTC 2008


Hi Mel,

Thanks for your reply - very insightful - i have beendelving into the c library files - which is after all why i am readingthis book, though still at the beginning 8).

On the pracct.c source file I have found it sufficient just to change line 31

from 
          struct     acct        acdata;
to
         struct     acctv1    acdata;

this leaves me with only 1 error which I have side stepped but not fixed.


error: +++++++++++++++++++++++++++++++++++++

bsdexit2.c: In function 'thr_fn2';
bsdexit2.c:31: Warning format '%d' expects type 'int', but argument 2 has type 'pthread_t'
+++++++++++++++++++++++++++++++++++++++++

line 31of threads/bsdexit2.c reads:

printf("thread 2: ID is %d\n", pthread_self

which I have commented this line and Make finishes building.

however which "%   ?" operater would I use to display pthread_self. 
In the c library pthread.h it says it is of "pthread_t" type.

I appreciate your help and I am grateful that you have inspired me.

Kindest regards,

Seamus

----- Original Message ----
From: Mel <fbsd.questions at rachie.is-a-geek.net>
To: freebsd-questions at freebsd.org
Cc: Brother Seamus <brother_seamus at btinternet.com>
Sent: Monday, 14 April, 2008 7:51:05 PM
Subject: Re: advanced programming unix environment

On Monday 14 April 2008 18:48:58 Brother Seamus wrote:

> I am trying to build the neccesary files for the stevens/rago APUE.2e book
> on FreeBSD 7.0

<snip>

> I get the following error:
> +++++++++++++++++++++++++++++++++++++++++
> pracct.c  ../lib/libapue.a
> pracct.c: In function 'main':
> pracct.c:31: error: storage size of 'acdata' isn't known
> pracct.c:31: warning: unused variable 'acdata'

The legacy struct acct has been renamed to acctv1 and a new one is named 
acctv2.
If you add:
typedef struct acctv1 acct_t;
After the #include <sys/acct.h>

then change the type of acdata to 'acct_t', you'll probably have solved it. 
But depends a bit on the rest of the library.


-- 
Mel

Problem with today's modular software: they start with the modules
    and never get to the software part.

----- Original Message ----
From: Mel <fbsd.questions at rachie.is-a-geek.net>
To: freebsd-questions at freebsd.org
Cc: Brother Seamus <brother_seamus at btinternet.com>
Sent: Monday, 14 April, 2008 7:51:05 PM
Subject: Re: advanced programming unix environment

On Monday 14 April 2008 18:48:58 Brother Seamus wrote:

> I am trying to build the neccesary files for the stevens/rago APUE.2e book
> on FreeBSD 7.0

<snip>

> I get the following error:
> +++++++++++++++++++++++++++++++++++++++++
> pracct.c  ../lib/libapue.a
> pracct.c: In function 'main':
> pracct.c:31: error: storage size of 'acdata' isn't known
> pracct.c:31: warning: unused variable 'acdata'

The legacy struct acct has been renamed to acctv1 and a new one is named 
acctv2.
If you add:
typedef struct acctv1 acct_t;
After the #include <sys/acct.h>

then change the type of acdata to 'acct_t', you'll probably have solved it. 
But depends a bit on the rest of the library.


-- 
Mel

Problem with today's modular software: they start with the modules
    and never get to the software part.





More information about the freebsd-questions mailing list