Latest web development tutorials
×

C หลักสูตร

C กวดวิชาภาษา C แนะนำโดยย่อ C การตั้งค่าสภาพแวดล้อม C โครงสร้างหลักสูตร C ไวยากรณ์พื้นฐาน C ชนิดข้อมูล C ตัวแปร C คงที่ C ประเภทการจัดเก็บ C ผู้ประกอบการ C ผู้พิพากษา C การไหลเวียน C ฟังก์ชัน C การกำหนดขอบเขตกฎระเบียบ C แถว C ชี้ C เชือก C โครงสร้าง C สหภาพ C ฟิลด์บิต C typedef C อินพุตและเอาต์พุต C การอ่านออกเขียนเอกสาร C preprocessor C ส่วนหัว C ปลดเปลื้อง C จัดการข้อผิดพลาด C recursion C พารามิเตอร์ตัวแปร C จัดการหน่วยความจำ C บรรทัดคำสั่ง C คลาสสิก 100 ราย

C ห้องสมุดมาตรฐาน

C ห้องสมุดมาตรฐาน - คู่มืออ้างอิง C ห้องสมุดมาตรฐาน - <assert.h> C ห้องสมุดมาตรฐาน - <ctype.h> C ห้องสมุดมาตรฐาน - <errno.h> C ห้องสมุดมาตรฐาน - <float.h> C ห้องสมุดมาตรฐาน - <limits.h> C ห้องสมุดมาตรฐาน - <locale.h> C ห้องสมุดมาตรฐาน - <math.h> C ห้องสมุดมาตรฐาน - <setjmp.h> C ห้องสมุดมาตรฐาน - <signal.h> C ห้องสมุดมาตรฐาน - <stdarg.h> C ห้องสมุดมาตรฐาน - <stddef.h> C ห้องสมุดมาตรฐาน - <stdio.h> C ห้องสมุดมาตรฐาน - <stdlib.h> C ห้องสมุดมาตรฐาน - <string.h> C ห้องสมุดมาตรฐาน - <time.h>

C ทำงานห้องสมุด - สัญญาณ ()

C ห้องสมุดมาตรฐาน - <signal.h> C ห้องสมุดมาตรฐาน - <signal.h>

ลักษณะ

ฟังก์ชั่น Cห้องสมุดเป็นโมฆะ (* สัญญาณ (int SIG, โมฆะ (* func) (int))) (int) การตั้งค่าฟังก์ชั่นการประมวลผลสัญญาณที่มีการจัดการสัญญาณที่เป็นพารามิเตอร์ SIG

คำแถลง

ต่อไปนี้เป็นฟังก์ชั่นสัญญาณคำสั่ง ()

void (*signal(int sig, void (*func)(int)))(int)

พารามิเตอร์

  • sig - รหัสสัญญาณในการประมวลผลสัญญาณที่ใช้ในโปรแกรมที่เป็นตัวแปรนี่คือบางส่วนที่สำคัญคงเกณฑ์สัญญาณคือ:
信号
SIGABRT(Signal Abort) 程序异常终止。
SIGFPE(Signal Floating-Point Exception) 算术运算出错,如除数为 0 或溢出(不一定是浮点运算)。
SIGILL(Signal Illegal Instruction) 非法函数映象,如非法指令,通常是由于代码中的某个变体或者尝试执行数据导致的。
SIGINT(Signal Interrupt) 中断信号,如 ctrl-C,通常由用户生成。
SIGSEGV(Signal Segmentation Violation) 非法访问存储器,如访问不存在的内存单元。
SIGTERM(Signal Terminate) 发送给本程序的终止请求信号。
  • func - ตัวชี้ไปยังฟังก์ชั่นมันอาจจะเป็นฟังก์ชั่นที่กำหนดโดยโปรแกรมก็สามารถเป็นหนึ่งในฟังก์ชั่นที่กำหนดไว้ล่วงหน้าด้านล่าง:
SIG_DFL默认的信号处理程序。
SIG_IGN忽视信号。

ราคาย้อนกลับ

ฟังก์ชั่นนี้จะส่งกลับค่าของการจัดการสัญญาณก่อน SIG_ERR กลับมาเมื่อเกิดข้อผิดพลาด

ตัวอย่าง

ตัวอย่างต่อไปนี้แสดงให้เห็นถึงสัญญาณฟังก์ชัน () ถูกนำมาใช้

#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#include <signal.h>

void sighandler(int);

int main()
{
   signal(SIGINT, sighandler);

   while(1) 
   {
      printf("开始休眠一秒钟...\n");
      sleep(1);
   }

   return(0);
}

void sighandler(int signum)
{
   printf("捕获信号 %d,跳出...\n", signum);
   exit(1);
}

Let 's รวบรวมและเรียกใช้โปรแกรมดังกล่าวข้างต้นซึ่งจะก่อให้เกิดผลดังต่อไปนี้และโปรแกรมที่จะเข้าสู่วง จำกัด ให้ใช้ปุ่ม CTRL + C ออกจากโปรแกรม

开始休眠一秒钟...
开始休眠一秒钟...
开始休眠一秒钟...
开始休眠一秒钟...
开始休眠一秒钟...
捕获信号 2,跳出...

C ห้องสมุดมาตรฐาน - <signal.h> C ห้องสมุดมาตรฐาน - <signal.h>