J'ai une application qui fonctionne avec des sockets et lit/écrit des données. Il utilise Foundation cadre combiné avec CFNetwork et stdio.L'application se comporte différemment lorsque la sortie est redirigée vers un objet NSPipe?
Voici le problème - quand il est lancé à partir de la console (bash shell), il fonctionne à 100% et il n'y a rien de mal à. Cependant, quand il est invoqué par une autre application via NSTask, la folie commence. L'application entière devient folle et ne lit qu'une fois le socket puis raccroche (il est censé quitter une fois terminé).
Cette application ne repose pas sur des variables d'environnement ou d'autres choses comme ça. Ce n'est pas un problème d'utilisateur non plus. Quand il est lancé, il envoie une requête simple au serveur et 'printf est la réponse et lit à nouveau. Cela se produit jusqu'à ce qu'un paquet de terminaison soit reçu.
Je suis vraiment confus, et il me semble qu'il y a quelque chose dans le cadre qui rend l'application folle juste pour énerver le programmeur. En passant, je suis sur Mac OS X Snow Leopard et l'application est pour la même plate-forme.
EDIT 1: Réorientation stdout à un NSPipe cause. Mais pourquoi ?
Cela me rend fou. –
Est-ce que vous faites référence au répertoire de travail actuel de quelque façon que ce soit? – mipadi
Non ................. –