summaryrefslogtreecommitdiff
path: root/docs/examples/userguide/language_basics/open_file.pyx
blob: ad45fc8c476454608ba1af00d9230f478354e18e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
from libc.stdio cimport FILE, fopen
from libc.stdlib cimport malloc, free
from cpython.exc cimport PyErr_SetFromErrnoWithFilenameObject

def open_file():
    cdef FILE* p
    p = fopen("spam.txt", "r")
    if p is NULL:
        PyErr_SetFromErrnoWithFilenameObject(OSError, "spam.txt")
    ...


def allocating_memory(number=10):
    cdef double *my_array = <double *> malloc(number * sizeof(double))
    if not my_array:  # same as 'is NULL' above
        raise MemoryError()
    ...
    free(my_array)