bpf_prog_detach
err = bpf_prog_detach(&attr);
return bpf_prog_detach(targetfd, type);
LIBBPF_API int bpf_prog_detach(int attachable_fd, enum bpf_attach_type type);
ret = bpf_prog_detach(0, BPF_FLOW_DISSECTOR);
if (CHECK(bpf_prog_detach(bar, BPF_CGROUP_INET_EGRESS),
if (CHECK(!bpf_prog_detach(foo, BPF_CGROUP_INET_EGRESS),
if (CHECK(bpf_prog_detach(bar, BPF_CGROUP_INET_EGRESS),
if (CHECK(bpf_prog_detach(foo, BPF_CGROUP_INET_EGRESS),
bpf_prog_detach(cgroup_fd, attach_type); \
bpf_prog_detach(cgroup_fd, test->attach_type);
bpf_prog_detach(cgfd, atype);
err = bpf_prog_detach(fd, BPF_SK_SKB_STREAM_PARSER);
err = bpf_prog_detach(fd, BPF_SK_SKB_STREAM_VERDICT);
err = bpf_prog_detach(fd, BPF_SK_MSG_VERDICT);
err = bpf_prog_detach(fd, __MAX_BPF_ATTACH_TYPE);
bpf_prog_detach(cg_fd, BPF_CGROUP_SOCK_OPS);