Mam deskryptor pliku, który wskazuje na gniazdo (przykładowy kod poniżej).Sprawdź, czy gniazdo jest zamknięte w bashu?
exec 3<>/dev/tcp/localhost/9999
echo -e "Some Command\n" >&3
Czasami gniazdo zamyka się i należy je ponownie otworzyć (ponowne uruchomienie serwera).
Jak mogę sprawdzić, czy gniazdo (fd # 3 w tym przypadku) jest zapisywalne?
Echo zawsze się powiedzie, niezależnie od tego, czy gniazdo zostało już zamknięte, czy nie.
Czy chcesz wiedzieć, czy _jest writable_ ** czy **, czy _it jest closed_? Pierwszy to pytanie o uprawnienia, drugie pytanie państwowe. Są one tylko nieznacznie powiązane (efektywny plik może być pod wpływem otwartych flag, które można by nazwać _state_, jeśli chcesz) – sehe
@se To nie jest pytanie o uprawnienia. Mówi o gniazdach. Nie ma uprawnień do zapisu związanych z gniazdami. Jeśli możesz otworzyć gniazdo, możesz je przeczytać i napisać. – EJP
Przede wszystkim, jeśli jest zamknięty. Wiem, że to jest zapisywalne, mogę otworzyć gniazdo w normalnych warunkach, ale kiedy tracę połączenie (problem z siecią, wyłączenie serwera podczas działania skryptu itp.), Muszę spróbować ponownie otworzyć go przed kontynuowaniem. –