From ea0abfada7a8985a692eb1b19af97348f32c175d Mon Sep 17 00:00:00 2001 From: li-zhi1577 <1350209173@qq.com> Date: Tue, 14 Nov 2023 16:18:19 +0800 Subject: [PATCH] first submit 208 --- task_management/gjb_S0100208GN.c | 165 +++++++++++++++++++++++++++++++ 1 file changed, 165 insertions(+) create mode 100644 task_management/gjb_S0100208GN.c diff --git a/task_management/gjb_S0100208GN.c b/task_management/gjb_S0100208GN.c new file mode 100644 index 0000000..ddbf1e2 --- /dev/null +++ b/task_management/gjb_S0100208GN.c @@ -0,0 +1,165 @@ +/********************************************************************************************************* +** +** GJB 标准测试集 +** +** Copyright All Rights Reserved +** +**--------------文件信息-------------------------------------------------------------------------------- +** +** 文 件 名: gjb_S0100208GN.c +** +** 文件创建日期: 2021 年 1 月 12 日 +** +** 描 述: 根据指定属性创建任务测试 +*********************************************************************************************************/ +#define _GNU_SOURCE +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + typedef unsigned int u32; + typedef u32 boolean; +#define FALSE 0 +#define TRUE 1 +#define SYSTEM_TICKS_USEC 1000 +#define RUN 1 +#define STOP 0 + int thread_status = RUN; + pthread_mutex_t thread_mut = PTHREAD_MUTEX_INITIALIZER; + pthread_cond_t thread_cond = PTHREAD_COND_INITIALIZER; + int b_is_pthread_mutex_init = 0; + + pthread_mutex_t g_pthread_mutex; + + +#define GJB_PRT_INFO(fmt, arg...) printf(fmt, ##arg) +#define GJB_PRT_ERROR_INFO(fmt, arg...) printf(fmt, ##arg) +#define gjb_os_printk(fmt, arg...) printf(fmt, ##arg) + + int GJB_PRI_FAIL(void) + { + printf("task failed\n"); + return -1; + } + + int GJB_PRI_PASS(void) + { + printf("task success\n"); + return (0); + } + + void binding (pthread_t tid, int cpu) + { + cpu_set_t set; + CPU_ZERO(&set); + CPU_SET(cpu, &set); + pthread_setaffinity_np(tid, sizeof(set), &set); + } + + +static pthread_t main_thread16_tm_208; + +void *main_task_thread16_S0100208GN (void *arg) +{ + GJB_PRT_INFO("main_task_thread16 create success\n"); + + sleep(5); + + return (NULL); +} + +/* + * 任务属性设置和查询_任务名称查询_正常 + */ +int test11_S0100208GN (void) +{ + int status; + char name[32]; + pthread_attr_t main_attr16; + + /* + *防止系统认为该main_attr16已初始化 + */ + memset(&main_attr16,0,sizeof(pthread_attr_t)); + + /* + * 初始化main_attr16 + */ + pthread_attr_init(&main_attr16); + + /* + * 设置任务名称 + */ + //pthread_attr_setname(&main_attr16, "test"); + + status = pthread_create(&main_thread16_tm_208, &main_attr16, main_task_thread16_S0100208GN, NULL); + if (status != 0) { + GJB_PRT_ERROR_INFO("Error creating main_thread16\n"); + return -1; + + } else { + GJB_PRT_INFO("creating main_thread16 success\n"); + } + + sleep(1); + + /* + * 获取任务 16 的名称 + */ + pthread_getname_np(main_thread16_tm_208, name, 6); + + if (strcmp("test", name) == 0) { + GJB_PRT_INFO("Same name"); + + } else { + GJB_PRT_ERROR_INFO("Inconsistent name\n"); + return (-1); + } + + /* + * 等待任务结束 + */ + pthread_join(main_thread16_tm_208, NULL); + + return 0; +} +/********************************************************************************************************* + * 函数名称: void usrMain(void) + * 功能描述: 用户程序入口 + * 输入参数: 无 + * 输出参数: 无 + * 返 回 值: 无 + * 其它说明: 无 +*********************************************************************************************************/ +int main(int argc, char **argv) +{ + int result; + + binding(pthread_self(), 0); + + result = test11_S0100208GN(); + if (result != 0) { + return (GJB_PRI_FAIL()); + + } else { + return (GJB_PRI_PASS()); + } +} -- Gitee