IO进程线程,标准IO函数
发布人:shili8
发布时间:2025-02-28 07:33
阅读次数:0
**IO、进程和线程**
在计算机编程中,IO(Input/Output)、进程和线程是三个基本概念,它们共同构成了一个程序的执行环境。
### IOIO指的是数据的输入和输出。它是程序与外部世界交互的方式。在计算机系统中,IO可以分为两类:同步IO和异步IO。
**同步IO**
同步IO是指在一次IO操作完成之前,不会进行下一次IO操作。例如,当你读取一个文件时,直到读取完毕后才会继续执行其他任务。
**异步IO**
异步IO是指可以同时进行多个IO操作,而不需要等待每次IO操作的完成。例如,你可以同时读取两个文件,然后再继续执行其他任务。
### 进程进程是程序在内存中的一块区域,它包含了程序的代码、数据和栈空间。在一个系统中,可以有多个进程同时运行。
**进程的特点**
1. 每个进程都有自己的地址空间。
2. 每个进程都有自己的堆栈空间。
3. 每个进程都有自己的程序计数器。
### 线程线程是轻量级进程,它共享同一个内存空间。多个线程可以同时执行不同的任务。
**线程的特点**
1. 多个线程共享同一个地址空间。
2. 每个线程都有自己的堆栈空间。
3. 每个线程都有自己的程序计数器。
### 标准IO函数标准IO函数是C语言中提供的一组用于输入和输出的函数。这些函数可以用来读取和写入文件、管道和网络连接等。
**stdio.h**
stdio.h是C语言中用于定义标准IO函数的头文件。它包含了以下函数:
1. `fopen()`:打开一个文件。
2. `fclose()`:关闭一个文件。
3. `fread()`:从一个文件读取数据。
4. `fwrite()`:向一个文件写入数据。
5. `printf()`:输出格式化的字符串。
6. `scanf()`:输入格式化的字符串。
###代码示例
c#include <stdio.h> int main() { // 打开一个文件 FILE *fp = fopen("test.txt", "w"); if (fp == NULL) { printf("无法打开文件 "); return -1; } // 向文件写入数据 fprintf(fp, "Hello, world! "); // 关闭文件 fclose(fp); return0; }
c#include <stdio.h> int main() { // 打开一个文件 FILE *fp = fopen("test.txt", "r"); if (fp == NULL) { printf("无法打开文件 "); return -1; } // 从文件读取数据 char buffer[1024]; fgets(buffer,1024, fp); // 输出读取的数据 printf("%s", buffer); // 关闭文件 fclose(fp); return0; }
c#include <stdio.h> #include <pthread.h> void *thread_func(void *arg) { int tid = *(int *)arg; printf("线程%d正在执行 ", tid); // 模拟线程执行时间 sleep(2); printf("线程%d已完成 ", tid); return NULL; } int main() { pthread_t thread1, thread2; int tid1 =1, tid2 =2; // 创建线程 pthread_create(&thread1, NULL, thread_func, &tid1); pthread_create(&thread2, NULL, thread_func, &tid2); // 等待线程完成 pthread_join(thread1, NULL); pthread_join(thread2, NULL); return0; }
上述代码示例展示了如何使用标准IO函数进行文件读写和线程的创建和管理。