talk(1p)
talk(1p)
PROLOG
Denna manualsida är en del av POSIX Programmer's Manual. Linux-implementeringen av detta gränssnitt kan skilja sig från motsvarande POSIX-beskrivning, eller också kanske gränssnittet inte är implementerat på Linux.
NAME
talk — tala med en annan användare
SYNOPSIS
talk address [terminal]
DESCRIPTION
Verktyget talk är ett tvåvägs, skärmorienterat kommunikationsprogram.
När det först startas ska talk skicka ett meddelande liknande följande till den angivna address:
Message from <ospecificerad sträng> talk: connection requested by your_address talk: respond with: talk your_address
Vid denna punkt kan mottagaren svara genom att skriva:
talk your_address
När kommunikationen har etablerats kan båda parter skriva samtidigt, och deras utdata visas i separata delar av skärmen. Tecken ska behandlas enligt följande:
- Att skriva tecknet alert ska signalera mottagarens terminal.
- Att skriva control-L ska göra att avsändarens skärmregioner ritas om.
- Att skriva erase- och kill-tecken ska påverka avsändarens terminal på det sätt som beskrivs av gränssnittet termios i POSIX.1-2017, kapitel 11, General Terminal Interface.
- Att skriva interrupt- eller EOF-tecken ska avsluta den lokala talk-processen. När sessionen har avslutats på ena sidan ska den andra sidan meddelas om detta och därefter inte kunna göra annat än att avsluta.
- Att skriva tecken som enligt LC_CTYPE klassas som print eller space ska orsaka att dessa tecken skickas till mottagarens terminal.
- Endast när det lokala läget stty iexten är aktiverat är förekomst och behandling av ytterligare specialtecken och flerbytes- eller enkelbytesfunktioner implementationsdefinierad.
- Att skriva andra icke-utskrivbara tecken ska orsaka att implementationsdefinierade sekvenser av utskrivbara tecken skickas till mottagarens terminal.
Tillstånd att ta emot ett talk-meddelande kan nekas eller tillåtas med verktyget mesg. En användares privilegier kan dock ytterligare begränsa åtkomsten till andra användares terminaler. Verktyget talk ska misslyckas när användaren saknar tillräckliga privilegier för den begärda åtgärden.
Vissa blockorienterade terminaler har inte alla funktioner som krävs för det samtidiga meddelandeutbyte som talk kräver. När detta inte kan stödjas på sådana terminaler får implementationen antingen erbjuda ett utbyte med reducerad samtidighet eller rapportera ett fel som beskriver terminalbegränsningen.
OPTIONS
Inga.
OPERANDS
Följande operander stöds:
- address
- Mottagaren av talk-sessionen. Ett format för address är användarnamnet, som returneras av verktyget who. Andra adressformat och hur de hanteras är ospecificerade.
- terminal
- Om mottagaren är inloggad mer än en gång kan argumentet terminal användas för att ange rätt terminalnamn. Om terminal inte anges ska talk-meddelandet visas på en eller flera tillgängliga terminaler som används av mottagaren. Formatet för terminal ska vara detsamma som returneras av who.
STDIN
Tecken som läses från standard input ska kopieras till mottagarens terminal på ett ospecificerat sätt. Om standard input inte är en terminal ska talk skriva ett diagnostiskt meddelande och avslutas med en status skild från noll.
INPUT FILES
Inga.
ENVIRONMENT VARIABLES
Följande miljövariabler påverkar körningen av talk:
- LANG
- Anger ett standardvärde för internationaliseringsvariabler som är osatta eller tomma.
- LC_ALL
- Om satt till en icke-tom sträng åsidosätter den värdena för alla andra internationaliseringsvariabler.
- LC_CTYPE
- Bestämmer lokalen för tolkning av byteföljder som tecken, till exempel enkelbytes- respektive flerbyte-tecken i argument och indatafiler. Om mottagarens locale inte använder en LC_CTYPE som motsvarar avsändarens är resultatet odefinierat.
- LC_MESSAGES
- Bestämmer vilken locale som ska användas för format och innehåll i diagnostiska meddelanden på standard error och informationsmeddelanden på standard output.
- NLSPATH
- Bestämmer platsen för meddelandekataloger för behandling av LC_MESSAGES.
- TERM
- Bestämmer namnet på anroparens terminaltyp. Om variabeln är osatt eller tom används en ospecificerad standardterminaltyp.
ASYNCHRONOUS EVENTS
När verktyget talk tar emot signalen SIGINT ska det avslutas och lämna status 0. För alla andra signaler ska standardåtgärden användas.
STDOUT
Om standard output är en terminal kan tecken kopierade från mottagarens standard input skrivas till standard output. Standard output kan också användas för diagnostiska meddelanden. Om standard output inte är en terminal ska talk avslutas med en status skild från noll.
STDERR
Inget.
OUTPUT FILES
Inga.
EXTENDED DESCRIPTION
Ingen.
EXIT STATUS
Följande avslutningsvärden ska returneras:
- 0 — lyckad körning
- >0 — ett fel inträffade eller talk startades på en terminal som inte kan stödja det
CONSEQUENCES OF ERRORS
Standard.
Följande avsnitt är informativa.
APPLICATION USAGE
Eftersom hanteringen av icke-utskrivbara tecken som inte är space är kopplad till stty-beskrivningen av iexten, kan implementationsutökningar i terminaldrivrutinen användas. Exempelvis erbjuder vissa implementationer radredigeringsfunktioner genom vissa kontrollteckensekvenser.
EXAMPLES
Inga.
RATIONALE
Verktyget write inkluderades i denna del av POSIX.1-2017 eftersom det kan implementeras på alla terminaltyper. Verktyget talk, som inte kan implementeras på vissa terminaler, ansågs vara ett “bättre” kommunikationsgränssnitt. Båda dessa program används i stor utsträckning i historiska implementationer, och därför specificerades båda.
Alla hänvisningar till nätverksfunktioner, alltså att använda talk med en användare på ett annat system, togs bort eftersom detta ligger utanför denna del av POSIX.1-2017.
Historiska BSD- och System V-versioner av talk avslutar båda sidor av konversationen när en av användarna bryter sessionen. Detta kan leda till problem om en användare ovetande fortsätter att skriva text som sedan tolkas av skalet när den andra parten avslutat sessionen. Därför kräver den version av talk som specificeras här att båda användarna uttryckligen avslutar sin sida av sessionen.
Endast meddelanden som skickas till den anropande användarens terminal kan internationaliseras:
- Det ursprungliga meddelandet ”Message from <ospecificerad sträng> ...” som skickas till mottagarens terminal kan inte internationaliseras eftersom mottagarens miljö ännu inte är tillgänglig för talk. Anroparens miljö är irrelevant här.
- Den fortsatta kommunikationen mellan parterna kan inte internationaliseras eftersom de två användarna kan ha olika språk i sina miljöer och icke-portabla tecken inte kan mappas säkert mellan språk.
- Ingen av parterna kan krävas kommunicera på annat språk än C och/eller det som anges av deras miljö, eftersom nödvändigt terminalstöd, till exempel fonter, kan saknas.
Texten i avsnittet STDOUT speglar användningen av verbet ”display” i denna specifikation. Vissa talk-implementationer använder faktiskt standard output för att skriva till terminalen, men det krävs inte av POSIX.1-2017.
Formatet på terminalnamnet är ospecificerat, men beskrivningarna av ps, talk, who och write kräver att de alla använder eller accepterar samma format.
Hanteringen av icke-utskrivbara tecken är delvis implementationsdefinierad eftersom detaljerna för hur de mappas till utskrivbara sekvenser inte behövs av användaren. Historiska implementationer förbjuder av säkerhetsskäl överföring av vissa icke-utskrivbara tecken som kan skicka kommandon till den andra terminalen.
FUTURE DIRECTIONS
Inga.
SEE ALSO
mesg(1p), stty(1p), who(1p), write(1p)
The Base Definitions volume of POSIX.1-2017, Chapter 8, Environment Variables, Chapter 11, General Terminal Interface
COPYRIGHT
Delar av denna text återges elektroniskt från IEEE Std 1003.1-2017, Standard for Information Technology -- Portable Operating System Interface (POSIX), The Open Group Base Specifications Issue 7, 2018 Edition, copyright (C) 2018 av Institute of Electrical and Electronics Engineers, Inc och The Open Group.
Om det finns någon skillnad mellan denna version och den ursprungliga IEEE- och The Open Group-standarden är originalstandarden den auktoritativa referensen.
Originalstandarden kan hämtas online från The Open Group.
Eventuella typografiska eller formateringsfel i denna sida har sannolikt tillkommit vid konverteringen av källfilerna till manualsidesformat.