h3. Summary
!http://blogs.sun.com/d/resource/book.jpg! The book _Solaris_ _Application_ _Programming_ was released January 2008.
!http://blogs.sun.com/d/resource/book_chinese.jpg! Chinese language version released June 2008.
h3. Publication details:
Pearson Media page: [http://vig.prenhall.com/catalog/academic/product/0,1144,0138134553,00.html]
Table of contents: [http://vig.prenhall.com/catalog/academic/product/0,1144,0138134553-TOC,00.html]
Preface: [http://vig.prenhall.com/catalog/academic/product/0,1144,0138134553-PRE,00.html]
Sample chapter: [http://www.sun.com/books/documents/solaris_app_programming_ch04.pdf]
Sun.com page: [http://www.sun.com/books/catalog/solaris_app_programming.xml]
Chinese version: [http://www.china-pub.com/39965]
h3. Author details:
About the author: [http://vig.prenhall.com/catalog/academic/product/0,1144,0138134553-ABI,00.html]
Author's blog: [http://blogs.sun.com/d/]
h3. Related wiki pages
[Application Performance Tuning|http://wikis.sun.com/display/AppPerfTuning]
[Solaris Developer|http://wikis.sun.com/display/SolarisDeveloper]
[Performance|http://wikis.sun.com/display/Performance/Home]
h3. Bibliography
||Processors||Software||
|[SPARC64 VI|http://www.fujitsu.com/downloads/SPARCE/others/sparc64vi-extensions.pdf]||
|[AMD64|http://www.amd.com/us-en/Processors/DevelopWithAMD/0,,30_2252_875_7044,00.html]||
|[UltraSPARC T2|http://opensparc-t2.sunsource.net/specs/OST2-UASuppl-current-draft-HP-EXT.pdf]||
|[UltraSPARC T1|http://opensparc-t1.sunsource.net/specs/UST1-UASuppl-current-draft-P-EXT.pdf]||
|[SPARC Architecture 2007|http://opensparc-t2.sunsource.net/specs/UA2007-current-draft-HP-EXT.pdf]||
h3. Errata for first printing of the book
Page 190. Example 7.14 - The formatting is broken, it should look more like:
{noformat}
(*((void(*)())dlsym(RTLD_NEXT, "exit")))(status);
}
double sin(double x) {
{noformat}
Page 186 Example 7.8 - The flag needs to be in quotes to avoid being interpreted by the shell
{noformat}
$ cc -o myapp -L. '-R$ORIGIN/../lib' -lmylib myapp.c
{noformat}
Page 335. Typo: "achive" should be "achieve".
Page 400. Example 12.28 is missing the following code:
{noformat}
#include <limits.h>
{noformat}
h3. Clarifications
page 399.
"This minimum stack size is held in the PTHREAD_STACK_MIN constant, which is defined in limits.h."
Actually PTHREAD_STACK_MIN is a macro which is declared in limits.h as:
{noformat}
#define PTHREAD_STACK_MIN ((size_t)_sysconf(_SC_THREAD_STACK_MIN))
{noformat}
It is available when limits.h is included and also the code is compiled with \_POSIX_C_SOURCE=199506L (or greater) - meaning that the code requires at least POSIX.1c. To get all possible compatible extensions enabled \_\_EXTENSIONS\_\_ can be defined on the compile line. More details on standards can be found in the [man pages |http://docs.sun.com/app/docs/doc/816-5175/6mbba7f3g?a=view] (`man standards`)
!http://blogs.sun.com/d/resource/book.jpg! The book _Solaris_ _Application_ _Programming_ was released January 2008.
!http://blogs.sun.com/d/resource/book_chinese.jpg! Chinese language version released June 2008.
h3. Publication details:
Pearson Media page: [http://vig.prenhall.com/catalog/academic/product/0,1144,0138134553,00.html]
Table of contents: [http://vig.prenhall.com/catalog/academic/product/0,1144,0138134553-TOC,00.html]
Preface: [http://vig.prenhall.com/catalog/academic/product/0,1144,0138134553-PRE,00.html]
Sample chapter: [http://www.sun.com/books/documents/solaris_app_programming_ch04.pdf]
Sun.com page: [http://www.sun.com/books/catalog/solaris_app_programming.xml]
Chinese version: [http://www.china-pub.com/39965]
h3. Author details:
About the author: [http://vig.prenhall.com/catalog/academic/product/0,1144,0138134553-ABI,00.html]
Author's blog: [http://blogs.sun.com/d/]
h3. Related wiki pages
[Application Performance Tuning|http://wikis.sun.com/display/AppPerfTuning]
[Solaris Developer|http://wikis.sun.com/display/SolarisDeveloper]
[Performance|http://wikis.sun.com/display/Performance/Home]
h3. Bibliography
||Processors||Software||
|[SPARC64 VI|http://www.fujitsu.com/downloads/SPARCE/others/sparc64vi-extensions.pdf]||
|[AMD64|http://www.amd.com/us-en/Processors/DevelopWithAMD/0,,30_2252_875_7044,00.html]||
|[UltraSPARC T2|http://opensparc-t2.sunsource.net/specs/OST2-UASuppl-current-draft-HP-EXT.pdf]||
|[UltraSPARC T1|http://opensparc-t1.sunsource.net/specs/UST1-UASuppl-current-draft-P-EXT.pdf]||
|[SPARC Architecture 2007|http://opensparc-t2.sunsource.net/specs/UA2007-current-draft-HP-EXT.pdf]||
h3. Errata for first printing of the book
Page 190. Example 7.14 - The formatting is broken, it should look more like:
{noformat}
(*((void(*)())dlsym(RTLD_NEXT, "exit")))(status);
}
double sin(double x) {
{noformat}
Page 186 Example 7.8 - The flag needs to be in quotes to avoid being interpreted by the shell
{noformat}
$ cc -o myapp -L. '-R$ORIGIN/../lib' -lmylib myapp.c
{noformat}
Page 335. Typo: "achive" should be "achieve".
Page 400. Example 12.28 is missing the following code:
{noformat}
#include <limits.h>
{noformat}
h3. Clarifications
page 399.
"This minimum stack size is held in the PTHREAD_STACK_MIN constant, which is defined in limits.h."
Actually PTHREAD_STACK_MIN is a macro which is declared in limits.h as:
{noformat}
#define PTHREAD_STACK_MIN ((size_t)_sysconf(_SC_THREAD_STACK_MIN))
{noformat}
It is available when limits.h is included and also the code is compiled with \_POSIX_C_SOURCE=199506L (or greater) - meaning that the code requires at least POSIX.1c. To get all possible compatible extensions enabled \_\_EXTENSIONS\_\_ can be defined on the compile line. More details on standards can be found in the [man pages |http://docs.sun.com/app/docs/doc/816-5175/6mbba7f3g?a=view] (`man standards`)