This file is indexed.

/usr/lib/spawn-command.scm is in scheme9 2013.11.26-1.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
; Scheme 9 from Empty Space, Function Library
; By Nils M Holm, 2010
; Placed in the Public Domain
;
; (spawn-command string list)     ==>  list
; (spawn-command/fd string list)  ==>  list
;
; (load-from-library "spawn-command.scm")
;
; Spawn a child process running the command STRING with the arguments
; listed in LIST. Return a list of two I/O-ports and the PID of the
; child process:
;
;         (input-port output-port integer)
;
; Note that the full path of the command must be spcified and no
; shell operators like <, >, &, etc may be used. When PATH search
; or shell operators are needed, use SPAWN-SHELL-COMMAND instead.
;
; The input-port can be used to read the output of the command and
; the output-port to send input to the command. Error output of the
; child will be redirected to its standard output.
;
; SPAWN-COMMAND/FD is like SPAWN-COMMAND, but delivers raw Unix file
; descriptors instead of input/output ports.
;
; (Example): (spawn-command "/bin/ls -l /bin")
;              ==>  (#<input-port> #<output-port> 707)

(require-extension sys-unix)

(define (spawn-command/fd command args)
  (let* ((from-child (sys:pipe))
         (to-child   (sys:pipe))
         (pid        (sys:fork)))
    (cond ((zero? pid)
            (sys:close (car from-child))
            (sys:close (cadr to-child))
            (sys:dup2 (cadr from-child) 2)
            (sys:dup2 (cadr from-child) 1)
            (sys:dup2 (car to-child) 0)
            (sys:execv command args)
            (error "sys:execv should not return")
            (sys:exit 1))
          (else
            (sys:close (cadr from-child))
            (sys:close (car to-child))
            (list (car from-child)
                  (cadr to-child)
                  pid)))))

(define (spawn-command command args)
  (let ((conn (spawn-command/fd command args)))
    (list (sys:make-input-port (car conn))
          (sys:make-output-port (cadr conn))
          (caddr conn))))