2010-06-21 6 views
1

J'essaie d'utiliser le code [c] de quelqu'un d'autre qui contrôle un shell Linux sur un périphérique USB sans fil. Il fopen-s fichiers "IReadFromBash" et "IWriteToBash" dans le répertoire actuel pour communiquer. Il ne contient pas de notes mais s'attend évidemment à ce qu'un fichier spécial existe déjà pour faciliter cela, et se sépare sans eux. Existe-t-il un moyen évident de créer des fichiers entrants et sortants nommés qui se connectent à un shell?Comment créer des fichiers spéciaux qui parlent au shell BASH

+0

Est-ce que l'accident de la coquille? Un autre crash de programme? Le programme d'interface plante? Quel est le programme original écrit? –

+0

Le programme d'interface se bloque car les fichiers qu'il essaie d'ouvrir ne sont pas présents. Il est écrit en C, et il ne plante pas si je crée un fichier régulier par ces noms. Bien sûr, un fichier régulier ne passe pas à un shell bash ... – phip

+0

avez-vous la source? Il devrait être réparé si il se bloque pour des détails aussi petits que l'inexistance de ces deux fichiers spéciaux – ShinTakezou

Répondre

2

Vraiment juste une supposition de ma part, mais je soupçonne qu'ils seront nommés tuyaux, créés avec mknod. Cela me semble le meilleur moyen d'atteindre l'objectif souhaité.

Vous pouvez voir ceci en fonctionnement ici. A partir d'une session de terminal:

pax> mknod infile p 
pax> mknod outfile p 
pax> bash <infile >outfile 

Puis, d'un autre terminal:

pax> echo ls >infile 
pax> cat outfile | sed 's/^/ /' 
    backup0.sh 
    backup1.sh 
    Desktop 
    Downloads 
    infile 
    Music 
    outfile 
    Pax 
    Pictures 
    Public 
    super_sekrit_porn 
    Templates 
    Videos 
    workspace 
pax> _ 
+0

ah-ha! Je vous remercie! – phip

Questions connexes