NESC Strategy 2006: People, Productivity and Purpose No

Total Page:16

File Type:pdf, Size:1020Kb

NESC Strategy 2006: People, Productivity and Purpose No NESC Strategy 2006: People, Productivity and Purpose no. 114 december 2005 NESC Strategy 2006: People, Productivity and Purpose December 2005 Published by the National Economic and Social Council Copies of this Report may be obtained from The National Economic and Social Council, 16 Parnell Square, Dublin 1 or the Government Publications Sales Office, Sun Alliance House, Molesworth Street, Dublin 2 Price: c15.00 Students: c5.00 Pn. A5/1971 ISBN: 0755773624 ii Membership of the National Economic and Social Council Chairperson Nominated by Business Nominated by Community and Employers Organisations: and Voluntary Organisations Mr. Dermot McCarthy Secretary General, Ms. Aileen O’Donoghue Fr. Sean Healy Department of the Taoiseach and IBEC CORI Secretary to the Government Mr. Brian Geoghegan* Mr. Dónall Geoghegan IBEC NYCI Deputy Chairperson Mr. Liam Kelleher Ms. Deirdre Garvey Ms. Mary Doyle CIF The Wheel Assistant Secretary, Department of the Taoiseach Mr. Brendan Butler Mr. John Mark McCafferty IBEC SVP Government Nominees Mr. John Dunne Mr. John Dolan Dr. Sean Barrett CCI DFI Professor Brigid Laffan Nominated by the Irish Secretariat Professor John Fitzgerald Congress of Trade Unions Dr. Rory O’ Donnell Professor Eithne McLaughlin Mr. Dave Begg Director ICTU Dr. Peter Bacon Mr. Noel Cahill Mr. Tom Considine Ms. Sally Anne Kinahan Economist Secretary General, ICTU Mr. Bill Thompson Department of Finance Mr. Manus O’ Riordan Served as an Economist Mr. Sean Gorman SIPTU in the Secretariat until Secretary General, Mr. Peter McLoone August, 2005 Department of Enterprise, IMPACT Dr. John Sweeney Trade and Employment Mr. Jack O’Connor Economist Mr. Brendan Tuohy SIPTU Mr. Jarlath McKee Secretary General, Social Policy Analyst Department of Communications, Nominated by agricultural and Ms. Jill Matthews Marine and Natural Resources farming organisations Served as a Social Policy Mr. John Hynes Mr. Seamus O’ Donohue Analyst in the Secretariat Secretary General, ICOS until March, 2005 Department of Social and Family Affairs Mr. Ciaran Dolan Ms. Aoife Halligan ICMSA Served as a Research Mr. Niall Callan Assistant in the Secretariat Secretary General, Department Mr. Damian McDonald until August, 2005 of Environment, Heritage and Macra na Feirme Local Government Mr. Michael Berkery Mr. Diarmuid Torney IFA Served as a Research Assistant in the Secretariat Mr. Con Lucey until August 2005 IFA Ms. Catherine O’Brien Ms. Tracy Curran *Mr. Danny McCoy Ms. Sheila Clarke IBEC, has taken up Mr. Brian Geoghegan’s position, October 2005 Table of Contents Abbreviations vii Preface ix Acknowledgements x Executive Summary xiii Chapter 1 The Economic, Social and Environmental Context 1.1 Introduction 1 1.2 Demographic Trends 1 1.3 Macro Economy, Incomes and Participation 12 1.4 Income Inequality and Poverty 27 1.5 Quality of Life and Social Wellbeing 40 1.6 Spatial Development 50 1.7 The Environment 57 1.8 Conclusions 63 Chapter 2 Vision and Analysis 2.1 Introduction 81 2.2 The NESC Approach to Vision and Visioning 81 2.3 Updating and Enriching Our Account of the Economy 85 2.4 Deepening our Account of Social Policy and Irish Society 92 2.5 Factoring the Environment more fully into our Understanding of Ireland’s Experience and Challenge 105 2.6 A Better Account of Relation between Ireland’s Economic, Social and Environmental Goals 110 iv contents Chapter 3 Key Challenges, Goals and Strategies 3.1 Introduction 115 3.2 Enterprise and Innovation 118 3.3 Training 125 3.4 Migration 133 3.5 Participation and Fairness 143 3.6 Pensions 162 3.7 Infrastructures of Care 165 3.8 Housing and Sustainable Neighbourhoods 174 3.9 Health 177 3.10 Education 185 3.11 Regional and Rural Development 193 3.12 Agriculture 199 3.13 Infrastructure and a New National Development Plan 203 3.14 The Environment 209 3.15 Enabling Voluntary and Community Activity 220 Chapter 4 A Consistent Policy Framework for 2006-2008 4.1 Introduction 235 4.2 A Consistent Policy Framework 235 4.3 The Public Finances 238 4.4 Wage Bargaining 254 Chapter 5 Policy Making, Implementation and Partnership 5.1 Introduction 281 5.2 The Problem: ‘Implementation’ 281 5.3 The Context 282 5.4 Analytical Insights on Policy Making: Negotiated Approaches and Government Authority 287 5.5 Implications for Irish Policy Making, Implementation and Partnership 294 Bibliography 305 Publications 314 contents v List of Tables Table 1.1 Net Migration Flows by Age Group, 1981 – 2002 (‘000) 8 Table 1.2 Population by Place of Birth, 1996 and 2002 9 Table 1.3 Private Households at Census Time, Selected Characteristics 11 Table 1.4 Trend in Average Industrial Earnings and the Minimum Wage 17 Table 1.5 Percentage of Persons below 60 Per Cent of Median Income 27 Table 1.6 Percentage of Persons in Consistent Poverty 29 Table 1.7 Percentage of Persons (Aged 16 and Over) in Consistent Poverty and Below 60 per cent of Median Income by their Principal Economic Status, 2003 29 Table 1.8 Percentage of Persons below 60 per cent of Median Income by Labour Force Status of Household Reference Person 30 Table 1.9 Breakdown of Persons below 60 per cent of Median Income by Labour Force Status of Household Reference Person 31 Table 1.10 Indices of Growth in the CPI, GAIE, After-Tax Earnings and Selected Social Transfers, 1994-2003 32 Table 1.11 Annual Rate of Growth (%) in Equivalised Disposable Income in Real Terms, Ireland and Sweden, Mid-1980s to 2000 33 Table 1.12 Selected Social Welfare Payments relative to 60 per cent of Median Equivalised Disposable Income, 1994 –2003 37 Table 1.13 Redistributive Impact of Budgets 2000-2005 38 Table A1.1 Average Annual Births, Deaths, Natural Increase and Estimated Net Migration for Each Intercensal Period, 1926-2002 65 Table A1.2 Share of Net Migration in Population Change 1996-2002 66 Table A1.3 Annual Percentage Change in GNP, Employment, Productivity and Living Standards 67 Table A1.4 Components of GNP: Annual Percentage Change 67 Table A1.5 Trend in Average Industrial Earnings 68 Table A1.6 The Sectoral Composition of Employment, 2000 and 2005 69 Table A1.7 Nominal Compensation per Employee ((Annual % Change) 70 Table A1.8 Average Weekly Earnings by Sector 71 Table A1.9 Economic Forecasts for 2005 and 2006 72 Table A1.10 Age Distribution of the Population, 1991 – 2002 72 Table A1.11 Level and Percentage Change in Gross Weekly Earnings (nominal), 2000-2004 73 Table A1.12 Minimum Wage as a Percentage of Average Manufacturing Earnings (Gross and Net) 74 Table A1.13 Employment and Unemployment by Region 75 Table A1.14 Percentage of Total Employment by Sector in Each Region 75 Table A1.15 Estimates of 2002 population and changes 1996-2002 for Gateways and Hubs, inclusive of catchment areas 76 vi contents Table 4.1 Age Related Expenditure as a Percentage of GDP 244 Table 4.2 Reasons for increase in the Exchequer Pay and Pensions Bill 256 Table A 4.1 Projection 1 A Balanced Budget 268 Table A 4.2 Projection 2 The Golden Rule 270 Table A 4.3 Projection 3 Intermediate Option, Deficit close to 1 per cent of GDP 272 Table A 4.4 Projection 4 Tax Increase of One Percentage Point of GNP Over 10 Years 274 List of Figures Figure 1.1 Age-specific fertility rates, 1960-2003 3 Figure 1.2 Estimated Annual Out-Migration and In-Migration (’000), 1992-2004 5 Figure 1.3 Natural Increase and Net Migration, Older EEA Countries, 2002-03 6 Figure 1.4 Manufacturing Output: Annual Percentage Change 14 Figure 1.5 Average Annual Days Lost in Industrial Disputes 23 Figure 2.1 Relationship Between Social Capital and Social Institutions and Interactions 113 Figure 3.1 Core Structure of the Developmental Welfare State 144 Figure 3.2 The Life Cycle Approach: A Unifying Perspective 147 Figure 3.3 The Partnership Framework 228 Figure 3.4 Three-way Learning Between Agency-Level, Sectoral-Level and National-Level 231 vii Abbreviations ACR DES EU SILC Annual Department of EU Survey of Income Competitiveness Education and Science and Living Conditions Report DHC FDI AEGI Department of Foreign Direct Adult Education Health and Children Investment Guidance Initiative DJELR FIS AHP Department of Family Income Affordable Homes Justice, Equality Supplement Partnership and Law Reform GAIE A&E DoEHLG Gross Average Accident and Department of Industrial Earnings Emergency Environment, Heritage and Local Government GDA APOCC Greater Dublin Area All-Party Oireachtas DP Committee on the Drugs Payment GDP Constitution Gross Domestic DWS Product BMW Developmental Border, Midland Welfare State GGB and Western General Government ECEC Balance CAP Early Childhood Common Education and Care GHG Agricultural Policy Greenhouse Gas ED C&AG Electoral District GNP Comptroller and Gross National Product Auditor General EDR Environmental GNI CB Dispute Resolution Gross National Income Child Benefit EEA GP CCCC European General Practitioner City and County Economic Area Childcare Committees GVA EIA Gross Value Added CDA Environmental Child Dependant Impact Assessment HALE Allowance Healthy Life EOCP Expectancy CECDE Equal Opportunities Centre for Early Childcare Programme HEI Childhood Higher Educational Development and Care EPA Institution Environmental CIE Protection Agency HICP Coras Iompar Éireann Harmonised Index of ESF Consumer Prices CPI European Social Fund Consumer Price Index HSE ESG Health Service CSO Enterprise Executive Central Statistics Strategy Group Office IBEC ESRI Irish Business and CSPVG Economic and Employers Civil Service Social Research Confederation Performance Institute Verification Group ICT ET Information and DBOF Emissions Trading Communications
Recommended publications
  • Operating Systems and Applications for Embedded Systems >>> Toolchains
    >>> Operating Systems And Applications For Embedded Systems >>> Toolchains Name: Mariusz Naumowicz Date: 31 sierpnia 2018 [~]$ _ [1/19] >>> Plan 1. Toolchain Toolchain Main component of GNU toolchain C library Finding a toolchain 2. crosstool-NG crosstool-NG Installing Anatomy of a toolchain Information about cross-compiler Configruation Most interesting features Sysroot Other tools POSIX functions AP [~]$ _ [2/19] >>> Toolchain A toolchain is the set of tools that compiles source code into executables that can run on your target device, and includes a compiler, a linker, and run-time libraries. [1. Toolchain]$ _ [3/19] >>> Main component of GNU toolchain * Binutils: A set of binary utilities including the assembler, and the linker, ld. It is available at http://www.gnu.org/software/binutils/. * GNU Compiler Collection (GCC): These are the compilers for C and other languages which, depending on the version of GCC, include C++, Objective-C, Objective-C++, Java, Fortran, Ada, and Go. They all use a common back-end which produces assembler code which is fed to the GNU assembler. It is available at http://gcc.gnu.org/. * C library: A standardized API based on the POSIX specification which is the principle interface to the operating system kernel from applications. There are several C libraries to consider, see the following section. [1. Toolchain]$ _ [4/19] >>> C library * glibc: Available at http://www.gnu.org/software/libc. It is the standard GNU C library. It is big and, until recently, not very configurable, but it is the most complete implementation of the POSIX API. * eglibc: Available at http://www.eglibc.org/home.
    [Show full text]
  • XL C/C++: Language Reference About This Document
    IBM XL C/C++ for Linux, V16.1.1 IBM Language Reference Version 16.1.1 SC27-8045-01 IBM XL C/C++ for Linux, V16.1.1 IBM Language Reference Version 16.1.1 SC27-8045-01 Note Before using this information and the product it supports, read the information in “Notices” on page 63. First edition This edition applies to IBM XL C/C++ for Linux, V16.1.1 (Program 5765-J13, 5725-C73) and to all subsequent releases and modifications until otherwise indicated in new editions. Make sure you are using the correct edition for the level of the product. © Copyright IBM Corporation 1998, 2018. US Government Users Restricted Rights – Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corp. Contents About this document ......... v Chapter 4. IBM extension features ... 11 Who should read this document........ v IBM extension features for both C and C++.... 11 How to use this document.......... v General IBM extensions ......... 11 How this document is organized ....... v Extensions for GNU C compatibility ..... 15 Conventions .............. v Extensions for vector processing support ... 47 Related information ........... viii IBM extension features for C only ....... 56 Available help information ........ ix Extensions for GNU C compatibility ..... 56 Standards and specifications ........ x Extensions for vector processing support ... 58 Technical support ............ xi IBM extension features for C++ only ...... 59 How to send your comments ........ xi Extensions for C99 compatibility ...... 59 Extensions for C11 compatibility ...... 59 Chapter 1. Standards and specifications 1 Extensions for GNU C++ compatibility .... 60 Chapter 2. Language levels and Notices .............. 63 language extensions ......... 3 Trademarks .............
    [Show full text]
  • Section “Common Predefined Macros” in the C Preprocessor
    The C Preprocessor For gcc version 12.0.0 (pre-release) (GCC) Richard M. Stallman, Zachary Weinberg Copyright c 1987-2021 Free Software Foundation, Inc. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation. A copy of the license is included in the section entitled \GNU Free Documentation License". This manual contains no Invariant Sections. The Front-Cover Texts are (a) (see below), and the Back-Cover Texts are (b) (see below). (a) The FSF's Front-Cover Text is: A GNU Manual (b) The FSF's Back-Cover Text is: You have freedom to copy and modify this GNU Manual, like GNU software. Copies published by the Free Software Foundation raise funds for GNU development. i Table of Contents 1 Overview :::::::::::::::::::::::::::::::::::::::: 1 1.1 Character sets:::::::::::::::::::::::::::::::::::::::::::::::::: 1 1.2 Initial processing ::::::::::::::::::::::::::::::::::::::::::::::: 2 1.3 Tokenization ::::::::::::::::::::::::::::::::::::::::::::::::::: 4 1.4 The preprocessing language :::::::::::::::::::::::::::::::::::: 6 2 Header Files::::::::::::::::::::::::::::::::::::: 7 2.1 Include Syntax ::::::::::::::::::::::::::::::::::::::::::::::::: 7 2.2 Include Operation :::::::::::::::::::::::::::::::::::::::::::::: 8 2.3 Search Path :::::::::::::::::::::::::::::::::::::::::::::::::::: 9 2.4 Once-Only Headers::::::::::::::::::::::::::::::::::::::::::::: 9 2.5 Alternatives to Wrapper #ifndef ::::::::::::::::::::::::::::::
    [Show full text]
  • Cheat Sheets of the C Standard Library
    Cheat Sheets of the C standard library Version 1.06 Last updated: 2012-11-28 About This document is a set of quick reference sheets (or ‘cheat sheets’) of the ANSI C standard library. It contains function and macro declarations in every header of the library, as well as notes about their usage. This document covers C++, but does not cover the C99 or C11 standard. A few non-ANSI-standard functions, if they are interesting enough, are also included. Style used in this document Function names, prototypes and their parameters are in monospace. Remarks of functions and parameters are marked italic and enclosed in ‘/*’ and ‘*/’ like C comments. Data types, whether they are built-in types or provided by the C standard library, are also marked in monospace. Types of parameters and return types are in bold. Type modifiers, like ‘const’ and ‘unsigned’, have smaller font sizes in order to save space. Macro constants are marked using proportional typeface, uppercase, and no italics, LIKE_THIS_ONE. One exception is L_tmpnum, which is the constant that uses lowercase letters. Example: int system ( const char * command ); /* system: The value returned depends on the running environment. Usually 0 when executing successfully. If command == NULL, system returns whether the command processor exists (0 if not). */ License Copyright © 2011 Kang-Che “Explorer” Sung (宋岡哲 <explorer09 @ gmail.com>) This work is licensed under the Creative Commons Attribution 3.0 Unported License. http://creativecommons.org/licenses/by/3.0/ . When copying and distributing this document, I advise you to keep this notice and the references section below with your copies, as a way to acknowledging all the sources I referenced.
    [Show full text]
  • Nesc 1.2 Language Reference Manual
    nesC 1.2 Language Reference Manual David Gay, Philip Levis, David Culler, Eric Brewer August 2005 1 Introduction nesC is an extension to C [3] designed to embody the structuring concepts and execution model of TinyOS [2]. TinyOS is an event-driven operating system designed for sensor network nodes that have very limited resources (e.g., 8K bytes of program memory, 512 bytes of RAM). TinyOS has been reimplemented in nesC. This manual describes v1.2 of nesC, changes from v1.0 and v1.1 are summarised in Section 2. The basic concepts behind nesC are: • Separation of construction and composition: programs are built out of components, which are assembled (“wired”) to form whole programs. Components define two scopes, one for their specification (containing the names of their interfaces) and one for their implementation. Components have internal concurrency in the form of tasks. Threads of control may pass into a component through its interfaces. These threads are rooted either in a task or a hardware interrupt. • Specification of component behaviour in terms of set of interfaces. Interfaces may be provided or used by the component. The provided interfaces are intended to represent the functionality that the component provides to its user, the used interfaces represent the functionality the component needs to perform its job. • Interfaces are bidirectional: they specify a set of functions to be implemented by the inter- face’s provider (commands) and a set to be implemented by the interface’s user (events). This allows a single interface to represent a complex interaction between components (e.g., registration of interest in some event, followed by a callback when that event happens).
    [Show full text]
  • INTRODUCTION to ANSI C Outline
    1/17/14 INTRODUCTION TO ANSI C Dr. Chokchai (Box) Leangsuksun Louisiana Tech University Original slides were created by Dr. Tom Chao Zhou, https://www.cse.cuhk.edu.hk 1 Outline • History • Introduction to C – Basics – If Statement – Loops – Functions – Switch case – Pointers – Structures – File I/O Louisiana Tech University 2 1 1/17/14 Introduction • The C programming language was designed by Dennis Ritchie at Bell Laboratories in the early 1970s • Influenced by – ALGOL 60 (1960), – CPL (Cambridge, 1963), – BCPL (Martin Richard, 1967), – B (Ken Thompson, 1970) • Traditionally used for systems programming, though this may be changing in favor of C++ • Traditional C: – The C Programming Language, by Brian Kernighan and Dennis Ritchie, 2nd Edition, Prentice Hall – Referred to as K&R Original by Fred Kuhns) Louisiana Tech University 3 Standard C • Standardized in 1989 by ANSI (American National Standards Institute) known as ANSI C • International standard (ISO) in 1990 which was adopted by ANSI and is known as C89 • As part of the normal evolution process the standard was updated in 1995 (C95) and 1999 (C99) • C++ and C – C++ extends C to include support for Object Oriented Programming and other features that facilitate large software development projects – C is not strictly a subset of C++, but it is possible to write “Clean C” that conforms to both the C++ and C standards. Original by Fred Kuhns) Original by Fred Kuhns) Louisiana Tech University 4 2 1/17/14 Elements of a C Program • A C development environment: – Application Source: application source and header files – System libraries and headers: a set of standard libraries and their header files.
    [Show full text]
  • C Language Features
    C Language Features 5.4 SUPPORTED DATA TYPES AND VARIABLES 5.4.1 Identifiers A C variable identifier (the following is also true for function identifiers) is a sequence of letters and digits, where the underscore character “_” counts as a letter. Identifiers cannot start with a digit. Although they can start with an underscore, such identifiers are reserved for the compiler’s use and should not be defined by your programs. Such is not the case for assembly domain identifiers, which often begin with an underscore, see Section 5.12.3.1 “Equivalent Assembly Symbols”. Identifiers are case sensitive, so main is different to Main. Not every character is significant in an identifier. The maximum number of significant characters can be set using an option, see Section 4.8.8 “-N: Identifier Length”. If two identifiers differ only after the maximum number of significant characters, then the compiler will consider them to be the same symbol. 5.4.2 Integer Data Types The MPLAB XC8 compiler supports integer data types with 1, 2, 3 and 4 byte sizes as well as a single bit type. Table 5-1 shows the data types and their corresponding size and arithmetic type. The default type for each type is underlined. TABLE 5-1: INTEGER DATA TYPES Type Size (bits) Arithmetic Type bit 1 Unsigned integer signed char 8 Signed integer unsigned char 8 Unsigned integer signed short 16 Signed integer unsigned short 16 Unsigned integer signed int 16 Signed integer unsigned int 16 Unsigned integer signed short long 24 Signed integer unsigned short long 24 Unsigned integer signed long 32 Signed integer unsigned long 32 Unsigned integer signed long long 32 Signed integer unsigned long long 32 Unsigned integer The bit and short long types are non-standard types available in this implementa- tion.
    [Show full text]
  • Choosing System C Library
    Choosing System C library Khem Raj Comcast Embedded Linux Conference Europe 2014 Düsseldorf Germany Introduction “God defined C standard library everything else is creation of man” Introduction • Standard library for C language • Provides primitives for OS service • Hosted/freestanding • String manipulations • Types • I/O • Memory • APIs Linux Implementations • GNU C library (glibc) • uClibc • eglibc – Now merged into glibc • Dietlibc • Klibc • Musl • bionic Multiple C library FAQs • Can I have multiple C libraries side by side ? • Can programs compiled with glibc run on uclibc or vice versa ? • Are they functional compatible ? • Do I need to choose one over other if I am doing real time Linux? • I have a baremetal application what libc options do I have ? Posix Compliance • Posix specifies more than ISO C • Varying degree of compliance What matters to you ? • Code Size • Functionality • Interoperability • Licensing • Backward Compatibility • Variety of architecture support • Dynamic Linking • Build system Codesize • Dietlibc/klibc – Used in really small setup e.g. initramfs • Bionic – Small linked into every process • uClibc – Configurable • Size can be really small at the expense of functionality • Eglibc – Has option groups can be ( < 1M ) License • Bionic – BSD/Apache-2.0 • Musl - MIT • Uclibc – LGPL-2.1 • Eglibc/Glibc – LGPL-2.1 Assigned to FSF • Dietlibc – GPLv2 • Klibc – GPLv2 • Newlib – some parts are GPLv3 Compliance • Musl strives for ISO/C and POSIX compliance No-mmu • uClibc supported No-mmu Distributions • Glibc is used in
    [Show full text]
  • An ECMA-55 Minimal BASIC Compiler for X86-64 Linux®
    Computers 2014, 3, 69-116; doi:10.3390/computers3030069 OPEN ACCESS computers ISSN 2073-431X www.mdpi.com/journal/computers Article An ECMA-55 Minimal BASIC Compiler for x86-64 Linux® John Gatewood Ham Burapha University, Faculty of Informatics, 169 Bangsaen Road, Tambon Saensuk, Amphur Muang, Changwat Chonburi 20131, Thailand; E-mail: [email protected] Received: 24 July 2014; in revised form: 17 September 2014 / Accepted: 1 October 2014 / Published: 1 October 2014 Abstract: This paper describes a new non-optimizing compiler for the ECMA-55 Minimal BASIC language that generates x86-64 assembler code for use on the x86-64 Linux® [1] 3.x platform. The compiler was implemented in C99 and the generated assembly language is in the AT&T style and is for the GNU assembler. The generated code is stand-alone and does not require any shared libraries to run, since it makes system calls to the Linux® kernel directly. The floating point math uses the Single Instruction Multiple Data (SIMD) instructions and the compiler fully implements all of the floating point exception handling required by the ECMA-55 standard. This compiler is designed to be small, simple, and easy to understand for people who want to study a compiler that actually implements full error checking on floating point on x86-64 CPUs even if those people have little programming experience. The generated assembly code is also designed to be simple to read. Keywords: BASIC; compiler; AMD64; INTEL64; EM64T; x86-64; assembly 1. Introduction The Beginner’s All-purpose Symbolic Instruction Code (BASIC) language was invented by John G.
    [Show full text]
  • Strlen Strcpy
    Strlen Description The strlen() function shall compute the number of bytes in the string to which s points, not including the terminating null byte. Return value The strlen() function shall return the length of s; the function has no failure mode and no error return. Prototype Declared in string.h size_t strlen(const char *s); Strcpy Prototype Declared in string.h In C90, the prototype is: char *strcpy(char *dest, const char *src); The C99 prototype is identical but adds the new restrict qualifiers: char *strcpy(char * restrict dest, const char * restrict src); Description The strcpy() function shall copy the null-terminated string pointed to by src to the memory pointed to by dest. Source and destination may not overlap. Return value The strcpy() function shall return the pointer dest; the function has no failure mode and no error return. Strcat Description The strcat() function shall append the null-terminated string pointed to by src to the null-terminated string pointed to by dest. The first character of src overwrites the null-terminator of dest. Source and destination may not overlap. Return value The strcat() function shall return the pointer dest; the function has no failure mode and no error return. Prototype Declared in string.h In C90, the prototype is: char *strcat(char *dest, const char *src); Strcmp Description The strcmp() function compares the string pointed to by s1 to the string pointed to by s2. Return value The strcmp() function returns an integer greater than, equal to, or less than zero, accordingly as the string pointed to by s1 is greater than, equal to, or less than the string pointed to by s2.
    [Show full text]
  • Advanced Openmp
    Advanced OpenMP Other APIs What’s wrong with OpenMP? • OpenMP is designed for programs where you want a fixed number of threads, and you always want the threads to be consuming CPU cycles. – cannot arbitrarily start/stop threads – cannot put threads to sleep and wake them up later • OpenMP is good for programs where each thread is doing (more-or-less) the same thing. • Although OpenMP supports C++, it’s not especially OO friendly – though it is gradually getting better. • OpenMP doesn’t support Java What’s wrong with Java threads? • Lacks some of the higher level functionality of OpenMP • Performance of Java may not match that of Fortran or C • OO model doesn’t suit some types of scientific computation very well • Some HPC systems don’t support Java – there is no standardised interface for message passing in Java What are the alternatives? • POSIX threads • C++ threads • Intel TBB • Cilk • OpenCL (not an exhaustive list!) POSIX threads • POSIX threads (or Pthreads) is a standard library for shared memory programming without directives. – Part of the ANSI/IEEE 1003.1 standard (1996) • Interface is a C library – no standard Fortran interface – can be used with C++, but not OO friendly • Widely available – even for Windows – typically installed as part of OS – code is pretty portable • Lots of low-level control over behaviour of threads • Execution model similar to Java threads Thread forking #include <pthread.h> int pthread_create( pthread_t *thread, const pthread_attr_t *attr, void*(*start_routine, void*), void *arg) • Creates a new thread: – first argument returns a pointer to a thread descriptor. – can set attributes.
    [Show full text]
  • 02 - Lecture - C Language Basics
    02 - Lecture - C language basics --------------------------------- Data types in C ---------------- char <= short <= int <= long <= long long - C standard does not specify byte sizes of these types. - on most systems: char is 1 byte, short is 2, int is 4, long long is 8. - long is the problematic one: Most 32-bit systems and 64-bit Windows: 4 bytes 64-bit UNIX (such as our Linux system): 8 bytes Java: 8 bytes - if you need to ensure byte sizes, use int<N>_t types: - int8_t, int16_t, int32_t, int64_t - #include <stdint.h> - defined in C99 standard - binary numbers and their hexadecimal representations Binary Dec Hex Binary Dec Hex 0000 0 0 1000 8 8 0001 1 1 1001 9 9 0010 2 2 1010 10 A 0011 3 3 1011 11 B 0100 4 4 1100 12 C 0101 5 5 1101 13 D 0110 6 6 1110 14 E 0111 7 7 1111 15 F - two’s-complement encoding for representing negative numbers - assign negative weight to the most significant bit (MSB) - results in asymmetry - there is one more negative number - some important numbers at the boundaries: 0x00....00 0x7F....FF 0x80....00 0xFF....FF - to negate n-bit integer: binary-subtract the number from 2^n, or equivalently, flip the bits and binary-add 1. - examples of integer variable decralations: int x; int x, y; int x = 0, y; char c = ’x’; char c = ’\n’; char c = ’\13’; char c = ’0’; char c = ’\0’; char c = 0; long x = 0L; unsigned version of all of the above unsigned long x = 0, y = 0xff00ff00ff00ff00UL uint32_t x = 0xffffffff - conversion between signed and unsigned preserves bit patterns: char c = -1; unsigned char uc = c; int i = uc;
    [Show full text]