為什么ttyname(2)的結果是/dev/pts/0 ?
#include stdio.h #include stdlib.h #include unistd.h int main( void ) { if( isatty( 0 ) ) { printf( %s\n, ttyname( 1 ) ); } else { printf( \n ); } return EXIT_SU CC ESS; } # ./a.out /dev/pts/0 # ls -l /dev/pts/ 總用量 0 crw--w---- 1 root t
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
int main( void )
{
if( isatty( 0 ) ) {
printf( "%s\n", ttyname( 1 ) );
} else {
printf( "\n" );
}
return EXIT_SU
CCESS;
}
# ./a.out
/dev/pts/0
# ls -l /dev/pts/
總用量 0
crw--w---- 1 root tty 136, 0 2004-01-20 15:01 0
crw------- 1 root tty 136, 1 2004-01-20 14:45 1
不知道你是那里出了問題,我運行以后是/dev/pts/1
剛才再試了一次,(不管這個程序是否已編譯,再編譯一次,防止記錯),還是一樣。。上面得ttyname(2).和程序里的ttynamne(1)的差別我發現了。是我發貼是改為其它值試試的。。。
tttyname(1)-----》還是/dev/pts/0

不懂了。。
1)
$ mount
/dev/md0 on / type ext3 (rw)
none on /proc type proc (rw)
usbdevfs on /proc/bus/usb type usbdevfs (rw)
/dev/md1 on /boot type ext3 (rw)
none on /dev/pts type devpts (rw,gid=5,mode=620)
none on /dev/shm type tmpfs (rw)
其中/dev/pts是遠程登陸(telnet,ssh等)后創建的控制臺設備文件所在的目錄。由于可能有好幾千個用戶登陸,所以/dev/pts其實是動態生成的,不象其他設備文件是構建系統時就已經產生的硬盤節點(如果未使用devfs)
2)
第一個用戶登陸,console的設備文件為/dev/pts/0,第二個為/dev/pts/1,以此類推。這里的0、1、2、3不是具體的標準輸入或輸出,而是整個控制臺。你可嘗試 echo "aaaaaa" > /dev/pts0、1、2……。
原文轉自:http://www.kjueaiud.com
- 評論列表(網友評論僅供網友表達個人看法,并不表明本站同意其觀點或證實其描述)
-
老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月
|