classification
Title: PyRun_SimpleFile should provide a version that does not need a FILE*
Type: crash Stage:
Components: Windows Versions: Python 3.8
process
Status: open Resolution:
Dependencies: Superseder:
Assigned To: Nosy List: cbiesinger, paul.moore, steve.dower, tim.golden, zach.ware
Priority: normal Keywords:

Created on 2019-08-13 18:21 by cbiesinger, last changed 2019-08-13 18:21 by cbiesinger.

Messages (1)
msg349598 - (view) Author: Christian Biesinger (cbiesinger) Date: 2019-08-13 18:21
Because FILE* requires that the runtime library matches between Python and a program using it, it is very hard to use this correctly on Windows. It would be nice if Python provided either:

- A function to open a FILE* given a filename, suitable for passing to the various PyRun_* functions, or
- Versions of the functions that take a filename and internally open the file

(ref: https://docs.python.org/3.9/c-api/veryhigh.html, which talks about this but provides no useful guidance:
"One particular issue which needs to be handled carefully is that the FILE structure for different C libraries can be different and incompatible. Under Windows (at least), it is possible for dynamically linked extensions to actually use different libraries, so care should be taken that FILE* parameters are only passed to these functions if it is certain that they were created by the same library that the Python runtime is using."
)
History
Date User Action Args
2019-08-13 18:21:40cbiesingercreate