/usr/share/doc/cl-uffi/examples/file-socket.lisp is in cl-uffi 2.1.2-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 | ;;;; -*- Mode: LISP; Syntax: ANSI-Common-Lisp; Base: 10 -*-
;;;; *************************************************************************
;;;; FILE IDENTIFICATION
;;;;
;;;; Name: file-socket.cl
;;;; Purpose: UFFI Example file to get a socket on a file
;;;; Programmer: Kevin M. Rosenberg
;;;; Date Started: Jul 2002
;;;;
;;;; This file, part of UFFI, is Copyright (c) 2002-2010 by Kevin M. Rosenberg
;;;;
;;;; *************************************************************************
(in-package :cl-user)
;; Values for linux
(uffi:def-constant PF_UNIX 1)
(uffi:def-constant SOCK_STREAM 1)
(uffi:def-function ("socket" c-socket)
((family :int)
(type :int)
(protocol :int))
:returning :int)
(uffi:def-function ("connect" c-connect)
((sockfd :int)
(serv-addr :void-pointer)
(addr-len :int))
:returning :int)
(defun connect-to-file-socket (filename)
(let ((socket (c-socket PF_UNIX SOCK_STREAM 0)))
(if (plusp socket)
(let ((stream (c-connect socket filename (length filename))))
stream)
(error "Unable to create socket"))))
|