title: Backwards compatibility and secure versions of functions
body: <p>I am writing some programs in C (rarely C++). Normally they are simple, but often they can get larger. </p>
  
  <p>I am looking to learn more about using the secure versions of functions, for example <code>strcpy()</code> is insecure and <code>strcpy_s()</code> is Microsoft's new secure version of that function.</p>
  
  <p>I normally use Visual Studio 2010 when coding for Windows <strong>* I removed part about Linux - focus on Windows only*</strong></p>
  
  <p>My question is if I use the newer secure version will I still be able to execute my programs on older versions of Windows, for example Windows 95? Due to requirements we can only have a single executable file.</p>
  
  <p>Thank you.</p>
  
  <p><strong>EDIT:</strong>
  Sorry this just appeared in my mind now - ignore the Linux part above. If we write code for Windows I do not mind if it's not portable to Linux, I only care if it still works on older versions of Windows.</p>