📄 00000004.htm
字号:
rsh machine -n 'command >&/dev/null </dev/null &' <BR> <BR> 如果您在远端使用 sh: <BR> rsh machine -n 'command >/dev/null 2>&1 </dev/null &' <BR> <BR> 为什麽呢?因为 "-n" 会把 rsh 的stdin接到 /dev/null,因此您可以在本地 <BR> 机器以背景方式执行整个 rsh 命令。不管是使用 -n 选项或者在指令结尾使 <BR> 用 "/dev/null",其效果都是一样的。此外,在远端机器使用的输出入转向(写 <BR> 在单引号内的部份)会让 rsh 认定此次连线可迳行结束(因为已无其他输 <BR> 入资料)。 <BR> <BR> 附注: 任何档案都可以用於远端机器的输出入转向,而不仅限於 /dev/null。 <BR> <BR> 在许多状况下,这个复杂的命令当中有很多部份都是非必要的。 <BR> <BR>------------------------------ <BR> <BR>Subject: How do I truncate a file? <BR>Date: Mon, 27 Mar 1995 18:09:10 -0500 <BR> <BR>3.3) 要怎样才能截断一个档案? <BR> <BR> BSD 的函数ftruncate() 可以设定档案的长度。但是并不是每一种版本的动作 <BR> 都一样。其他 UNIX 的变种似乎也都支援其他版本的截断功能。 <BR> <BR> 支援 ftruncate函数的系统多半可归类为以下三种: <BR> <BR> BSD 4.2 - Ultrix, SGI, LynxOS <BR> -无法使用截断功能来增加档案长度 <BR> -执行截断动作不会移动档案指标 <BR> <BR> BSD 4.3 - SunOS, Solaris, OSF/1, HP/UX, Amiga <BR> -可以用截断功能来增加档案长度 <BR> -执行截断动作不会移动档案指标 <BR> <BR> Cray - UniCOS 7, UniCOS 8 <BR> -无法使用截断功能来增加档案长度 <BR> -执行截断动作会移动档案指标 <BR> <BR> 其他系统则可能在以下四个地方与众不同: <BR> <BR> F_CHSIZE - 只在SCO 上 <BR> -有些系统定义了F_CHSIZE 但并没有真的支援此功能 <BR> -动作类似BSD 4.3 <BR> <BR> F_FREESP - 只在 Interative Unix 上 <BR> -有些系统(如Interactive Unix)定义了F_FREESP 但并没有真的支援此 <BR> 功能 <BR> -动作类似BSD 4.3 <BR> <BR> chsize() - QNX and SCO <BR> -有些系统(如Interactive Unix)有chsize() 函数但并没有真的支援 <BR> 此功能 <BR> -动作类似BSD 4.3 <BR> <BR> 「空空如也」-目前找不到这种系统 <BR> -也许会有系统完全不支援 truncate功能 <BR> <BR> FAQ 维护者的注解:以下是我在几年前从网路抓到的程式,原作者已不可考, <BR> 不过S.Spencer Sun <<A HREF="mailto:spencer@ncd.com>">spencer@ncd.com></A> 也贡献了一份 <BR> F_FREESP的功能。 <BR> <BR> functions for each non-native ftruncate follow <BR> <BR> /* ftruncate emulations that work on some System V's. <BR> This file is in the public domain. */ <BR> <BR> #include <BR> #include <BR> <BR> #ifdef F_CHSIZE <BR> int <BR> ftruncate (fd, length) <BR> int fd; <BR> off_t length; <BR> { <BR> return fcntl (fd, F_CHSIZE, length); <BR> } <BR> #else <BR> #ifdef F_FREESP <BR> /* The following function was written by <BR> <A HREF="mailto:kucharsk@Solbourne.com">kucharsk@Solbourne.com</A> (William Kucharski) */ <BR> <BR> #include <BR> #include <BR> #include <BR> <BR> int <BR> ftruncate (fd, length) <BR> int fd; <BR> off_t length; <BR> { <BR> struct flock fl; <BR> struct stat filebuf; <BR> <BR> if (fstat (fd, &filebuf) < 0) <BR> return -1; <BR> <BR> if (filebuf.st_size < length) <BR> { <BR> /* Extend file length. */ <BR> if (lseek (fd, (length - 1), SEEK_SET) < 0) <BR> return -1; <BR> <BR> /* Write a "0" byte. */ <BR> if (write (fd, "", 1) != 1) <BR> return -1; <BR> } <BR> else <BR> { <BR> /* Truncate length. */ <BR> fl.l_whence = 0; <BR> fl.l_len = 0; <BR> fl.l_start = length; <BR> fl.l_type = F_WRLCK; /* Write lock on file space. */ <BR> <BR> /* This relies on the UNDOCUMENTED F_FREESP argument to <BR> fcntl, which truncates the file so that it ends at the <BR> position indicated by fl.l_start. <BR> Will minor miracles never cease? */ <BR> if (fcntl (fd, F_FREESP, &fl) < 0) <BR> return -1; <BR> } <BR> <BR> return 0; <BR> } <BR> #else <BR> int <BR> ftruncate (fd, length) <BR>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -