目录
将 BPF 程序attach类型转换为字符串
函数类型
/* libbpf_bpf_attach_type_str() converts the provided attach type value into a textual representation. Parameters: t – The attach type. Returns: Pointer to a static string identifying the attach type. NULL is returned for unknown bpf_attach_type values. */ LIBBPF_API const char * libbpf_bpf_attach_type_str (enum bpf_attach_type t)
代码demo
#include <stdio.h> #include <bpf/libbpf.h> #include <linux/bpf.h> int main() { enum bpf_attach_type attach_type = BPF_TRACE_RAW_TP; const char *attach_type_str = libbpf_bpf_attach_type_str(attach_type); printf("Attach type: %d\nAttach type string: %s\n", attach_type, attach_type_str); return 0; }
makefile
CC = gcc CFLAGS = -Wall -O2 $(shell pkg-config --cflags libbpf) LIBS = $(shell pkg-config --libs libbpf) all: libbpf_strerror_demo libbpf_attach_type_demo libbpf_strerror_demo: libbpf_strerror_demo.c $(CC) $(CFLAGS) -o $@ $^ $(LIBS) libbpf_attach_type_demo: libbpf_attach_type_demo.c $(CC) $(CFLAGS) -o $@ $^ $(LIBS) clean: rm -f libbpf_strerror_demo libbpf_attach_type_demo .PHONY: all clean
cmake
cmake_minimum_required(VERSION 3.10) project(libbpf_attach_type_demo LANGUAGES C) set(CMAKE_C_STANDARD 11) set(CMAKE_C_STANDARD_REQUIRED ON) set(CMAKE_C_EXTENSIONS OFF) find_package(PkgConfig REQUIRED) pkg_check_modules(LIBBPF REQUIRED IMPORTED_TARGET libbpf) add_executable(libbpf_attach_type_demo libbpf_attach_type_demo.c) target_link_libraries(libbpf_attach_type_demo PRIVATE PkgConfig::LIBBPF)
将 bpf程序link类型转换为相应的字符串
函数原型
/* libbpf_bpf_link_type_str() converts the provided link type value into a textual representation. Parameters: t – The link type. Returns: Pointer to a static string identifying the link type. NULL is returned for unknown bpf_link_type values. */ LIBBPF_API const char * libbpf_bpf_link_type_str (enum bpf_link_type t)
代码demo
#include <stdio.h> #include <bpf/libbpf.h> #include <linux/bpf.h> int main() { enum bpf_link_type link_type = BPF_LINK_TYPE_TRACING; const char *link_type_str = libbpf_bpf_link_type_str(link_type); printf("Link type: %d\nLink type string: %s\n", link_type, link_type_str); return 0; }
makefile
CC = gcc CFLAGS = -Wall -Wextra -Werror LDFLAGS = $(shell pkg-config --libs libbpf) all: libbpf_link_type_demo libbpf_link_type_demo: libbpf_link_type_demo.o $(CC) -o $@ $^ $(LDFLAGS) libbpf_link_type_demo.o: libbpf_link_type_demo.c $(CC) $(CFLAGS) -c $< clean: rm -f *.o libbpf_link_type_demo .PHONY: all clean
cmake
cmake_minimum_required(VERSION 3.10) project(libbpf_link_type_demo LANGUAGES C) set(CMAKE_C_STANDARD 11) set(CMAKE_C_STANDARD_REQUIRED ON) set(CMAKE_C_EXTENSIONS OFF) find_package(PkgConfig REQUIRED) pkg_check_modules(LIBBPF REQUIRED IMPORTED_TARGET libbpf) add_executable(libbpf_link_type_demo libbpf_link_type_demo.c) target_link_libraries(libbpf_link_type_demo PRIVATE PkgConfig::LIBBPF)
bpf 程序map类型转字符串
函数原型
LIBBPF_API const char * libbpf_bpf_map_type_str (enum bpf_map_type t)
代码demo
#include <stdio.h> #include <bpf/libbpf.h> #include <linux/bpf.h> int main() { enum bpf_map_type map_type = BPF_MAP_TYPE_HASH; const char *map_type_str = libbpf_bpf_map_type_str(map_type); printf("Map type: %d\nMap type string: %s\n", map_type, map_type_str); return 0; }
makefile
CC = gcc CFLAGS = -Wall -Wextra -Werror LDFLAGS = $(shell pkg-config --libs libbpf) all: libbpf_map_type_demo libbpf_map_type_demo: libbpf_map_type_demo.o $(CC) -o $@ $^ $(LDFLAGS) libbpf_map_type_demo.o: libbpf_map_type_demo.c $(CC) $(CFLAGS) -c $< clean: rm -f *.o libbpf_map_type_demo .PHONY: all clean
cmake
cmake_minimum_required(VERSION 3.10) project(libbpf_map_type_demo LANGUAGES C) set(CMAKE_C_STANDARD 11) set(CMAKE_C_STANDARD_REQUIRED ON) set(CMAKE_C_EXTENSIONS OFF) find_package(PkgConfig REQUIRED) pkg_check_modules(LIBBPF REQUIRED IMPORTED_TARGET libbpf) add_executable(libbpf_map_type_demo libbpf_map_type_demo.c) target_link_libraries(libbpf_map_type_demo PRIVATE PkgConfig::LIBBPF)
bpf prog类型转字符串
函数原型
/* libbpf_bpf_prog_type_str() converts the provided program type value into a textual representation. Parameters: t – The program type. Returns: Pointer to a static string identifying the program type. NULL is returned for unknown bpf_prog_type values. */ LIBBPF_API const char * libbpf_bpf_prog_type_str (enum bpf_prog_type t)
代码demo
#include <stdio.h> #include <bpf/libbpf.h> #include <linux/bpf.h> int main() { enum bpf_prog_type prog_type = BPF_PROG_TYPE_SCHED_CLS; const char *prog_type_str = libbpf_bpf_prog_type_str(prog_type); printf("Program type: %d\nProgram type string: %s\n", prog_type, prog_type_str); return 0; }
makefile
CC = gcc CFLAGS = -Wall -Wextra -Werror LDFLAGS = $(shell pkg-config --libs libbpf) all: libbpf_prog_type_demo libbpf_prog_type_demo: libbpf_prog_type_demo.o $(CC) -o $@ $^ $(LDFLAGS) libbpf_prog_type_demo.o: libbpf_prog_type_demo.c $(CC) $(CFLAGS) -c $< clean: rm -f *.o libbpf_prog_type_demo .PHONY: all clean
cmake
cmake_minimum_required(VERSION 3.10) project(libbpf_prog_type_demo LANGUAGES C) set(CMAKE_C_STANDARD 11) set(CMAKE_C_STANDARD_REQUIRED ON) set(CMAKE_C_EXTENSIONS OFF) find_package(PkgConfig REQUIRED) pkg_check_modules(LIBBPF REQUIRED IMPORTED_TARGET libbpf) add_executable(libbpf_prog_type_demo libbpf_prog_type_demo.c) target_link_libraries(libbpf_prog_type_demo PRIVATE PkgConfig::LIBBPF)