C程序是由一组或是变量或是函数的外部对象组成的。 函数是一个自我包含的完成一定相关功能的执行代码段。下面小编和大家分享下C语言中的函数。
1. sopen函数
sopen函数的功能是打开一共享文件,其用法为:int sopen(char *pathname, int access, int shflag, int permiss);程序实例如下:
#include <io.h>
#include <fcntl.h>
#include <sys/stat.h>
#include <process.h>
#include <share.h>
#include <stdio.h>
int main(void)
{
int handle;
int status;
handle = sopen("c://autoexec.bat", O_RDONLY, SH_DENYNO, S_IREAD);
if (!handle)
{
printf("sopen failed/n");
exit(1);
}
status = access("c://autoexec.bat", 6);
if (status == 0)
printf("read/write access allowed/n");
else
printf("read/write access not allowed/n");
close(handle);
return 0;
}
2. spawnl函数
spawnl函数的功能是创建并运行子程序,其用法为int spawnl(int mode, char *pathname, char *arg0,arg1, ... argn, NULL);程序实例代码如下:
#include <process.h>
#include <stdio.h>
#include <conio.h>
int main(void)
{
int result;
clrscr();
result = spawnl(P_WAIT, "tcc.exe", NULL);
if (result == -1)
{
perror("Error from spawnl");
exit(1);
}
return 0;
}
3. srand函数
srand函数的功能是初始化随机数发生器, 其用法为:void srand(unsigned seed);程序实例代码如下:
#include <stdlib.h>
#include <stdio.h>
#include <time.h>
int main(void)
{
int i;
time_t t;
srand((unsigned) time(&t));
printf("Ten random numbers from 0 to 99/n/n");
for(i=0; i<10; i++)
printf("%d/n", rand() % 100);
return 0;
}
4. sscanf函数
sscanf函数用法为:int sscanf(char *string, char *format[,argument,...]);程序实例代码如下:
#include <stdio.h>
#include <conio.h>
int main(void)
{
char label[20];
char name[20];
int entries = 0;
int loop, age;
double salary;
struct Entry_struct
{
char name[20];
int age;
float salary;
} entry[20];
printf("/n/nPlease enter a label for the chart: ");
scanf("%20s", label);
fflush(stdin);
printf("How many entries will there be? (less than 20) ");
scanf("%d", &entries);
fflush(stdin);
for (loop=0;loop<entries;++loop)
{
printf("Entry %d/n", loop);
printf(" Name : ");
scanf("%[A-Za-z]", entry[loop].name);
fflush(stdin);
printf(" Age : ");
scanf("%d", &entry[loop].age);
fflush(stdin);
printf(" Salary : ");
scanf("%f", &entry[loop].salary);
fflush(stdin);
}
printf("/nPlease enter your name, age and salary/n");
scanf("%20s %d %lf", name, &age, &salary);
printf("/n/nTable %s/n",label);
printf("Compiled by %s age %d $%15.2lf/n", name, age, salary);
for (loop=0;loop<entries;++loop)
printf("%4d | %-20s | %5d | %15.2lf/n",
loop + 1,
entry[loop].name,
entry[loop].age,
entry[loop].salary);
return 0;
}