文件消息列表

//读

#include <sysat.h>                                                    
#include <fcntl.h>                                                       
#include <errno.h>                                                       
#include <stdio.h>                                                       
#include <string.h>                                                      
#include <unistd.h>                                                      
#include <sys/ipc.h>                                                     
#include <sys/msg.h>                                                     
struct msgbuf                                                            
{                                                                        
    long mtype;//消息标示                                                
    char mtext[100];//消息的正文                                         
                                                                         
};                                                                       
int main(int argc, const char *argv[])                                   
{                                                                        
                                                                         
    //创建key值                                                          
    key_t key=ftok("./",0);//为什么填0是应为这个是>                      
    //但是给了三个可以填的其他都用不着,例如如果存>                      
    if(-1==key)                                                          
    {                                                                    
        printf("creat key failed");                                      
        return -1;                                                       
    }                                                                    
    //创建消息队列                                                       
    int msg_id=msgget(key,IPC_CREAT |0777);//后面的                      
    if(-1==msg_id)                                                       
    {                                                                    
        perror("creat msg failed");                                      
        return -1;                                                       
    }                                                                    
    struct msgbuf buf;                                                   
    printf("请输入对应的标识符");                                        
                                                                         
    scanf("%ld",& (buf.mtype));                                          
    while(1)                                                             
    {                                                                    
        memset(buf.mtext,0,100);                                         
        ssize_t msgrcv_ret=msgrcv(msg_id,&buf,sizeof(buf),buf.mtype,0);  
        if(-1==msgrcv_ret)                                               
        {                                                                
            printf("read msg failed");                                   
            return -1;                                                   
        }                                                                
        if(strcmp(buf.mtext,"kunkun\n")==0)                              
        {                                                                
            break;                                                       
        }                                                                
        printf("打印传过来的%s\n",buf.mtext);                            
                                                                         
    }                                                                    
    return 0;                                                            
}

  /写

#include <string.h>
 #include <unistd.h>
 #include <sys/ipc.h>
 #include <sys/msg.h>
 struct msgbuf
 {
     long mtype;//消息标示
     char mtext[100];//消息的正文
 
 };
 int main(int argc, const char *argv[])
 {
 
     //创建key值
     key_t key=ftok("./",0);//为什么填0是应为这个是填int型
     //但是给了三个可以填的其他都用不着,例如如果存在就报错
     if(-1==key)
     {
         perror("创建失败");
         return -1;
     }
     //创建消息队列
     int msg_id=msgget(key,IPC_CREAT |0777);//后面的那个ip那一坨是创建队列,0777是权限
     if(-1==msg_id)
     {
         perror("creat msg failed");
         return -1;
     }
     struct msgbuf buf;
     printf("获取标识符");
  scanf("%ld",& (buf.mtype));
 
     while(1)
     {
 
         memset( buf.mtext,0,100);
         printf("请输入内容");
         fgets(buf.mtext,100,stdin);
 
         int msgsnd_ret=msgsnd(msg_id,&buf,strlen(buf.mtext)+1,0);
         if(-1==msgsnd_ret)
         {
             printf("插入失败");
             return -1;
         }
         if(strcmp(buf.mtext,"kunkun\n")==0)
         {
             break;
         }                                                                                           
 
     }
 
 
 
 
 
     return 0;
 }

对于消息通知列表,可以使用 RecyclerView 来展示消息列表。下面是一个简单示例,展示如何使用 RecyclerView 实现消息通知列表: 1. 首先,在你的布局文件中添加一个 RecyclerView: ```xml <androidx.recyclerview.widget.RecyclerView android:id="@+id/notificationRecyclerView" android:layout_width="match_parent" android:layout_height="match_parent" /> ``` 2. 创建一个消息通知的数据模型类,例如 NotificationModel: ```java public class NotificationModel { private String title; private String message; public NotificationModel(String title, String message) { this.title = title; this.message = message; } public String getTitle() { return title; } public String getMessage() { return message; } } ``` 3. 创建一个 RecyclerView 的适配器类,例如 NotificationAdapter,继承自 RecyclerView.Adapter: ```java public class NotificationAdapter extends RecyclerView.Adapter<NotificationAdapter.ViewHolder> { private List<NotificationModel> notificationList; public NotificationAdapter(List<NotificationModel> notificationList) { this.notificationList = notificationList; } @NonNull @Override public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { View view = LayoutInflater.from(parent.getContext()) .inflate(R.layout.item_notification, parent, false); return new ViewHolder(view); } @Override public void onBindViewHolder(@NonNull ViewHolder holder, int position) { NotificationModel notification = notificationList.get(position); holder.titleTextView.setText(notification.getTitle()); holder.messageTextView.setText(notification.getMessage()); } @Override public int getItemCount() { return notificationList.size(); } public static class ViewHolder extends RecyclerView.ViewHolder { public TextView titleTextView; public TextView messageTextView; public ViewHolder(@NonNull View itemView) { super(itemView); titleTextView = itemView.findViewById(R.id.titleTextView); messageTextView = itemView.findViewById(R.id.messageTextView); } } } ``` 4. 创建一个布局文件 item_notification.xml,用于定义每个消息通知的布局: ```xml <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" android:padding="16dp"> <TextView android:id="@+id/titleTextView" android:layout_width="match_parent" android:layout_height="wrap_content" android:textSize="18sp" android:textStyle="bold" /> <TextView android:id="@+id/messageTextView" android:layout_width="match_parent" android:layout_height="wrap_content" android:textSize="14sp" /> </LinearLayout> ``` 5. 在你的 Activity 或 Fragment 中,初始化 RecyclerView 和适配器,并设置适配器到 RecyclerView: ```java RecyclerView recyclerView = findViewById(R.id.notificationRecyclerView); List<NotificationModel> notificationList = new ArrayList<>(); // 添加你的消息数据到 notificationList NotificationAdapter adapter = new NotificationAdapter(notificationList); recyclerView.setLayoutManager(new LinearLayoutManager(this)); recyclerView.setAdapter(adapter); ``` 这样,你就可以使用 RecyclerView 来展示消息通知列表了。根据你的需求,可以添加更多的功能,如点击事件、删除功能等。希望对你有所帮助!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值