Application Programmer’s Guide for SDDS Version 4

Michael Borland and Robert Soliday
Advanced Photon Source

July 6, 2018

SDDS is a file protocol for Self Describing Data Sets. This document describes Version 4 of the SDDS protocol and the function library that supports it. It is intended for those who wish to develop programs that use SDDS files.

1 Definition of SDDS Protocol
 1.1 Structure of the SDDS Header
 1.2 Structure of SDDS ASCII Data Pages
 1.3 Structure of SDDS Binary Data Pages
2 Overview of Library Routines
 2.1 Input Routines
 2.2 Output Routines
 2.3 Error Handling and Utilities
3 Two Templates for SDDS Application Organization
 3.1 Accessing Data Stored in an SDDS File
 3.2 SDDS Output of Internally-Generated Data
4 Manual Pages
 4.1 SDDS_ArrayCount
 4.2 SDDS_CastValue
 4.3 SDDS_CheckArray
 4.4 SDDS_CheckColumn
 4.5 SDDS_CheckParameter
 4.6 SDDS_ClearErrors
 4.7 SDDS_ColumnCount
 4.8 SDDS_ConvertToDouble
 4.9 SDDS_ConvertToLong
 4.10 SDDS_ConvertToLongDouble
 4.11 SDDS_CopyArrays
 4.12 SDDS_CopyColumns
 4.13 SDDS_CopyLayout
 4.14 SDDS_CopyParameters
 4.15 SDDS_CopyRowDirect
 4.16 SDDS_CopyRowsOfInterest
 4.17 SDDS_CopyTable
 4.18 SDDS_CountRowsOfInterest
 4.19 SDDS_DisconnectFile
 4.20 SDDS_DefineArray
 4.21 SDDS_DefineColumn
 4.22 SDDS_DefineParameter
 4.23 SDDS_DefineParameter1
 4.24 SDDS_DefineSimpleColumn
 4.25 SDDS_DefineSimpleColumns
 4.26 SDDS_DefineSimpleParameter
 4.27 SDDS_DefineSimpleParameters
 4.28 SDDS_DeleteColumn
 4.29 SDDS_DeleteParameter
 4.30 SDDS_DeleteUnsetColumns
 4.31 SDDS_DeleteUnsetRows
 4.32 SDDS_FilterRowsOfInterest
 4.33 SDDS_FindArray
 4.34 SDDS_FindColumn
 4.35 SDDS_FindParameter
 4.36 SDDS_GetArray
 4.37 SDDS_GetArrayDefinition
 4.38 SDDS_GetArrayInDoubles
 4.39 SDDS_GetArrayInLong
 4.40 SDDS_GetArrayIndex
 4.41 SDDS_GetArrayInformation
 4.42 SDDS_GetArrayNames
 4.43 SDDS_GetArrayType
 4.44 SDDS_GetColumn
 4.45 SDDS_GetColumnDefinition
 4.46 SDDS_GetColumnInDoubles
 4.47 SDDS_GetColumnInFloats
 4.48 SDDS_GetColumnInLong
 4.49 SDDS_GetColumnInShort
 4.50 SDDS_GetColumnIndex
 4.51 SDDS_GetColumnInformation
 4.52 SDDS_GetColumnNames
 4.53 SDDS_GetColumnType
 4.54 SDDS_GetMatrixFromColumn
 4.55 SDDS_GetMatrixOfRows
 4.56 SDDS_GetParameter
 4.57 SDDS_GetParameterAsDouble
 4.58 SDDS_GetParameterAsLong
 4.59 SDDS_GetParameterAsLongDouble
 4.60 SDDS_GetParameterAsString
 4.61 SDDS_GetParameterByIndex
 4.62 SDDS_GetParameterDefinition
 4.63 SDDS_GetParameterIndex
 4.64 SDDS_GetParameterInformation
 4.65 SDDS_GetParameterNames
 4.66 SDDS_GetParameterType
 4.67 SDDS_GetRow
 4.68 SDDS_GetTypeSize
 4.69 SDDS_GetValue
 4.70 SDDS_InitializeAppend
 4.71 SDDS_InitializeAppendToPage
 4.72 SDDS_InitializeCopy
 4.73 SDDS_InitializeHeaderlessInput
 4.74 SDDS_InitializeInput
 4.75 SDDS_InitializeOutput
 4.76 SDDS_LengthenTable
 4.77 SDDS_Logic
 4.78 SDDS_NumberOfErrors
 4.79 SDDS_ParameterCount
 4.80 SDDS_PrintErrors
 4.81 SDDS_PrintTypedValue
 4.82 SDDS_ReadTable
 4.83 SDDS_ReconnectFile
 4.84 SDDS_RowCount
 4.85 SDDS_SaveLayout
 4.86 SDDS_SetArray
 4.87 SDDS_SetColumn
 4.88 SDDS_SetColumnFlags
 4.89 SDDS_SetColumnFromDoubles
 4.90 SDDS_SetColumnFromLongs
 4.91 SDDS_SetColumnsOfInterest
 4.92 SDDS_SetParameter
 4.93 SDDS_SetParameters
 4.94 SDDS_SetParametersFromDoubles
 4.95 SDDS_SetRowFlags
 4.96 SDDS_SetRowsOfInterest
 4.97 SDDS_SetRowValues
 4.98 SDDS_StartTable
 4.99 SDDS_Terminate
 4.100 SDDS_VerifyArrayExists
 4.101 SDDS_VerifyColumnExists
 4.102 SDDS_VerifyParameterExists
 4.103 SDDS_WriteLayout
 4.104 SDDS_WriteTable
Contents