2011-05-17 15 views
17

kgdb-gdb uzak bağlantısı için seri port soketi oluşturmam gerekiyor.Tip soketinde özel dosyalar nasıl oluşturulur?

mkfifo, sisteminizde bir FIFO oluşturduğunda, soket dosyalarını nasıl oluşturabiliriz?

+1

C https://stackoverflow.com/questions/20171747/how-to-create-unix-domain-socket-with-a-specific-permissions | kabuk https://serverfault.com/questions/358866/create-unix-named-socket-from-the-command-line Ayrıca el ile herhangi bir yuva oluşturmadan KGDB GDB'yi de yönetdim: https://stackoverflow.com/a/44226360/895245 –

+0

Aşağıdakileri @rsaw noktaları vermek için cevap olarak işaretlemeyi düşünün. –

cevap

14

Onaylanan yanıtın @cidermonkey ile bağlantısı, yuva kullanan bir uygulama yazmaya çalışıyorsanız harikadır. Sonra yüklemek

#include <fcntl.h> 
#include <sys/un.h> 
#include <sys/socket.h> 
#include <sys/stat.h> 
#include <sys/types.h> 
#include <unistd.h> 

int main(int argc, char **argv) 
{ 
    // The following line expects the socket path to be first argument 
    char * mysocketpath = argv[1]; 
    // Alternatively, you could comment that and set it statically: 
    //char * mysocketpath = "/tmp/mysock"; 
    struct sockaddr_un namesock; 
    int fd; 
    namesock.sun_family = AF_UNIX; 
    strncpy(namesock.sun_path, (char *)mysocketpath, sizeof(namesock.sun_path)); 
    fd = socket(AF_UNIX, SOCK_DGRAM, 0); 
    bind(fd, (struct sockaddr *) &namesock, sizeof(struct sockaddr_un)); 
    close(fd); 
    return 0; 
} 

gcc derlemek ve Ta-:

~]# python -c "import socket as s; sock = s.socket(s.AF_UNIX); sock.bind('/tmp/somesocket')" 
~]# ll /tmp/somesocket 
srwxr-xr-x. 1 root root 0 Mar 3 19:30 /tmp/somesocket 

Ya with a tiny C program, örneğin aşağıdaki create-a-socket.c kaydetmek: kelimenin tam anlamıyla sadece bir tane oluşturmak istiyorsanız python bunu yapabiliyor da:

~]# gcc -o create-a-socket create-a-socket.c 
~]# ./create-a-socket mysock 
~]# ll mysock 
srwxr-xr-x. 1 root root 0 Mar 3 17:45 mysock 
+0

Harika cevap @rsaw! Çok öğretici olmasının yanı sıra, Python'un neden tercih edilen bir programlama dili olduğunu açıklıyor. –

+0

@rsaw Büyük Python cevap. Bunun için teşekkür ederim. = :) –

İlgili konular