函数名: ultoa
功 能: 转换一个无符号长整型数为字符串
用 法: char *ultoa(unsigned long value, char *string, int radix);
程序例:
#include <stdlib.h>
#include <stdio.h>
int main( void )
{
unsigned long lnumber = 3123456789L;
char string[25];
ultoa(lnumber,string,10);
printf(“string = %s unsigned long = %lun”,string,lnumber);
return 0;
}
函数名: ungetc
功 能: 把一个字符退回到输入流中
用 法: int ungetc(char c, FILE *stream);
程序例:
#include <stdio.h>
#include <ctype.h>
int main( void )
{
int i=0;
char ch;
puts(“Input an integer followed by a char:”);
/* read chars until non digit or EOF */
while((ch = getchar()) != EOF && isdigit(ch))
i = 10 * i + ch – 48; /* convert ASCII into int value */
/* if non digit char was read, push it back into input buffer */
if (ch != EOF)
ungetc(ch, stdin);
printf(“i = %d, next char in buffer = %cn”, i, getchar());
return 0;
}
函数名: ungetch
功 能: 把一个字符退回到键盘缓冲区中
用 法: int ungetch(int c);
程序例:
#include <stdio.h>
#include <ctype.h>
#include <conio.h>
int main( void )
{
int i=0;
char ch;
puts(“Input an integer followed by a char:”);
/* read chars until non digit or EOF */
while((ch = getche()) != EOF && isdigit(ch))
i = 10 * i + ch – 48; /* convert ASCII into int value */
/* if non digit char was read, push it back into input buffer */
if (ch != EOF)
ungetch(ch);
printf(“nni = %d, next char in buffer = %cn”, i, getch());
return 0;
}
函数名: unixtodos
功 能: 把日期和时间转换成DOS格式
用 法: void unixtodos(long utime, struct date *dateptr,
struct time *timeptr);
程序例:
#include <stdio.h>
#include <dos.h>
char *month[] = {“—“, “Jan”, “Feb”, “Mar”, “Apr”, “May”, “Jun”,
“Jul”, “Aug”, “Sep”, “Oct”, “Nov”, “Dec”};
#define SECONDS_PER_DAY 86400L /* the number of seconds in one day */
struct date dt;
struct time tm;
int main(void)
{
unsigned long val;
/* get today’s date and time */
getdate(&dt);
gettime(&tm);
printf(“today is %d %s %dn”, dt.da_day, month[dt.da_mon], dt.da_year);
/* convert date and time to unix format (number of seconds since Jan 1, 1970 */
val = dostounix(&dt, &tm);
/* subtract 42 days worth of seconds */
val -= (SECONDS_PER_DAY * 42);
/* convert back to dos time and date */
unixtodos(val, &dt, &tm);
printf(“42 days ago it was %d %s %dn”,
dt.da_day, month[dt.da_mon], dt.da_year);
return 0;
}
函数名: unlink
功 能: 删掉一个文件
用 法: int unlink(char *filename);
程序例:
#include <stdio.h>
#include <io.h>
int main(void)
{
FILE *fp = fopen(“junk.jnk”,”w”);
int status;
fprintf(fp,”junk”);
status = access(“junk.jnk”,0);
if (status == 0)
printf(“File existsn”);
else
printf(“File doesn’t existn”);
fclose(fp);
unlink(“junk.jnk”);
status = access(“junk.jnk”,0);
if (status == 0)
printf(“File existsn”);
else
printf(“File doesn’t existn”);
return 0;
}
函数名: unlock
功 能: 解除文件共享锁
用 法: int unlock(int handle, long offset, long length);
程序例:
#include <io.h>
#include <fcntl.h>
#include <sysstat.h>
#include <process.h>
#include <share.h>
#include <stdio.h>
int main(void)
{
int handle, status;
long length;
handle = sopen(“c:\autoexec.bat”,O_RDONLY,SH_DENYNO,S_IREAD);
if (handle < 0)
{
printf(“sopen failedn”);
exit(1);
}
length = filelength(handle);
status = lock(handle,0L,length/2);
if (status == 0)
printf(“lock succeededn”);
else
printf(“lock failedn”);
status = unlock(handle,0L,length/2);
if (status == 0)
printf(“unlock succeededn”);
else
printf(“unlock failedn”);
close(handle);
return 0;
}